From a3465dbbeb229b1eec49f6c449d3fd6c2f6d32d4 Mon Sep 17 00:00:00 2001 From: lyon Date: Tue, 28 Dec 2021 01:15:06 +0800 Subject: [PATCH] fix mem error in for in range() --- port/linux/package/pikascript/main.py | 12 +++++------- src/PikaObj.c | 6 +++--- src/PikaVM.c | 2 +- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/port/linux/package/pikascript/main.py b/port/linux/package/pikascript/main.py index a32d323c5..401adf62e 100644 --- a/port/linux/package/pikascript/main.py +++ b/port/linux/package/pikascript/main.py @@ -4,10 +4,8 @@ import PikaStdData import PikaMath from PikaObj import * -list = PikaStdData.List() -i = 0 -while i < 10: - list.append(i) - i = i + 1 -for item in list: - print(item) +for i in range(0, 100): + print(i) + +for i in range(0, 100): + print(i) diff --git a/src/PikaObj.c b/src/PikaObj.c index db065cbf8..890f03c04 100644 --- a/src/PikaObj.c +++ b/src/PikaObj.c @@ -495,12 +495,12 @@ exit: int32_t obj_removeArg(PikaObj* self, char* argPath) { PikaObj* objHost = obj_getObj(self, argPath, 1); - PikaObj* obj = obj_getObj(self, argPath, 0); + Arg* obj_arg = obj_getArg(self, argPath); Args* buffs = New_strBuff(); char* argName; int32_t res; - if (NULL != obj) { - obj_deinit(obj); + if (TYPE_OBJECT == arg_getType(obj_arg)) { + obj_deinit(arg_getPtr(obj_arg)); } int32_t err = 0; if (NULL == objHost) { diff --git a/src/PikaVM.c b/src/PikaVM.c index c7a62d638..637d6626f 100644 --- a/src/PikaVM.c +++ b/src/PikaVM.c @@ -116,7 +116,7 @@ static enum Instruct getInstruct(char* line) { } if (0 == strncmp(line + 2, "DEL", 3)) { /* delete */ - return EST; + return DEL; } if (0 == strncmp(line + 2, "EST", 3)) { /* is exist */