From 508dece619e26b08a95fa856581d14816b2eef1f Mon Sep 17 00:00:00 2001
From: Chernov Dmitriy <cd_work@mail.ru>
Date: 周一, 29 2月 2016 22:16:38 +0800
Subject: [PATCH] manual heap ready

---
 libscpi/src/expression.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/libscpi/src/expression.c b/libscpi/src/expression.c
index 308a953..702835c 100644
--- a/libscpi/src/expression.c
+++ b/libscpi/src/expression.c
@@ -193,7 +193,7 @@
     size_t i = 0;
     while (scpiLex_DecimalNumericProgramData(state, &param)) {
         if (i < length) {
-            SCPI_ParamToInt(context, &param, &values[i]);
+            SCPI_ParamToInt32(context, &param, &values[i]);
         }
 
         if (scpiLex_SpecificCharacter(state, &param, '!')) {
@@ -245,6 +245,8 @@
             *dimensions = fromDimensions;
             return SCPI_EXPR_OK;
         }
+    } else if (err == SCPI_EXPR_NO_MORE) {
+        err = SCPI_EXPR_ERROR;
     }
 
     return err;
@@ -303,5 +305,11 @@
     if (res == SCPI_EXPR_ERROR) {
         SCPI_ErrorPush(context, SCPI_ERROR_EXPRESSION_PARSING_ERROR);
     }
+    if (res == SCPI_EXPR_NO_MORE) {
+        if (!scpiLex_IsEos(&lex)) {
+            res = SCPI_EXPR_ERROR;
+            SCPI_ErrorPush(context, SCPI_ERROR_EXPRESSION_PARSING_ERROR);
+        }
+    }
     return res;
 }

--
Gitblit v1.9.1