This commit is contained in:
2022-09-03 09:47:08 +01:00
parent e6fe42c0ca
commit c039045c14

View File

@@ -617,9 +617,13 @@ static bool execNegate(Interpreter* interpreter) {
//negate the top literal on the stack (numbers only) //negate the top literal on the stack (numbers only)
Literal lit = popLiteralArray(&interpreter->stack); Literal lit = popLiteralArray(&interpreter->stack);
if (IS_IDENTIFIER(lit)) {
Literal idn = lit;
if (!parseIdentifierToValue(interpreter, &lit)) { if (!parseIdentifierToValue(interpreter, &lit)) {
return false; return false;
} }
freeLiteral(idn);
}
else if (IS_INTEGER(lit)) { else if (IS_INTEGER(lit)) {
lit = TO_INTEGER_LITERAL(-AS_INTEGER(lit)); lit = TO_INTEGER_LITERAL(-AS_INTEGER(lit));
@@ -648,9 +652,13 @@ static bool execInvert(Interpreter* interpreter) {
//negate the top literal on the stack (booleans only) //negate the top literal on the stack (booleans only)
Literal lit = popLiteralArray(&interpreter->stack); Literal lit = popLiteralArray(&interpreter->stack);
if (IS_IDENTIFIER(lit)) {
Literal idn = lit;
if (!parseIdentifierToValue(interpreter, &lit)) { if (!parseIdentifierToValue(interpreter, &lit)) {
return false; return false;
} }
freeLitreral(idn);
}
if (IS_BOOLEAN(lit)) { if (IS_BOOLEAN(lit)) {
lit = TO_BOOLEAN_LITERAL(!AS_BOOLEAN(lit)); lit = TO_BOOLEAN_LITERAL(!AS_BOOLEAN(lit));
@@ -959,9 +967,13 @@ static bool execValCast(Interpreter* interpreter) {
Literal value = popLiteralArray(&interpreter->stack); Literal value = popLiteralArray(&interpreter->stack);
Literal type = popLiteralArray(&interpreter->stack); Literal type = popLiteralArray(&interpreter->stack);
if (IS_IDENTIFIER(value)) {
Literal idn = value;
if (!parseIdentifierToValue(interpreter, &value)) { if (!parseIdentifierToValue(interpreter, &value)) {
return false; return false;
} }
freeLiteral(idn);
}
Literal result = TO_NULL_LITERAL; Literal result = TO_NULL_LITERAL;