aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2017-03-23 23:42:41 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2017-03-23 23:42:41 +0100
commit2491d5f30573d9e5e72b3c7d2eac8788bbe69dd4 (patch)
treec1ebb59953fc2f75075d92e2f650d71c11d20e4d /src
parentd4eaa94908b8db15beeb543f2eb5945fbd0ed224 (diff)
downloadsciteco-2491d5f30573d9e5e72b3c7d2eac8788bbe69dd4.tar.gz
fixed checks for missing left and right operands to binary operators
* this resulted in assertions (crashes!) for harmless typos like "+23=" * a test case has been added
Diffstat (limited to 'src')
-rw-r--r--src/expressions.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/expressions.cpp b/src/expressions.cpp
index 6c28080..7ccdd31 100644
--- a/src/expressions.cpp
+++ b/src/expressions.cpp
@@ -124,11 +124,11 @@ Expressions::calc(void)
Operator op;
tecoInt vleft;
- if (operators.peek() != OP_NUMBER)
+ if (!operators.items() || operators.peek() != OP_NUMBER)
throw Error("Missing right operand");
vright = pop_num();
op = pop_op();
- if (operators.peek() != OP_NUMBER)
+ if (!operators.items() || operators.peek() != OP_NUMBER)
throw Error("Missing left operand");
vleft = pop_num();