diff --git a/port/linux/.vscode/launch.json b/port/linux/.vscode/launch.json index b7dcec71a..de7220f10 100644 --- a/port/linux/.vscode/launch.json +++ b/port/linux/.vscode/launch.json @@ -19,7 +19,7 @@ // "program": "${workspaceFolder}/../build/src/boot/demo06-pikamain/pikascript_demo06-pikamain", "args": [ // "--gtest_filter=VM.RUN_DEF_NEW", - // "--gtest_filter=VM.class_x_1", + "--gtest_filter=VM.class_x_1", // "--gtest_filter=parser.add_a_b*", // "--gtest_filter=parser.method_void", // "--gtest_filter=parser.add_a_b", diff --git a/port/linux/test/VM-test.cpp b/port/linux/test/VM-test.cpp index 569260ab3..35cee049a 100644 --- a/port/linux/test/VM-test.cpp +++ b/port/linux/test/VM-test.cpp @@ -737,7 +737,7 @@ TEST(VM, class_x_1) { ArgType test_arg_type = arg_getType(test_arg); EXPECT_EQ(test_arg_type, TYPE_OBJECT); int x = obj_getInt(test, (char*)"x"); - // EXPECT_EQ(x, 1); + EXPECT_EQ(x, 1); obj_deinit(self); args_deinit(buffs); EXPECT_EQ(pikaMemNow(), 0); diff --git a/src/PikaVM.c b/src/PikaVM.c index da3465b4a..77a057d30 100644 --- a/src/PikaVM.c +++ b/src/PikaVM.c @@ -174,7 +174,6 @@ static Arg* VM_instruction_handler_NON(PikaObj* self, VMState* vs, char* data) { static Arg* VM_instruction_handler_NEW(PikaObj* self, VMState* vs, char* data) { Arg* origin_arg = obj_getArg(vs->locals, data); Arg* new_arg = arg_copy(origin_arg); - ArgType arg_type = arg_getType(origin_arg); origin_arg = arg_setType(origin_arg, TYPE_POINTER); arg_setType(new_arg, TYPE_FREE_OBJECT); return new_arg; @@ -380,7 +379,7 @@ static Arg* VM_instruction_handler_RAS(PikaObj* self, VMState* vs, char* data) { return NULL; } /* use "data" object to run */ - PikaObj* runAs = obj_getObj(self, data, 0); + PikaObj* runAs = obj_getObj(vs->locals, data, 0); args_setPtr(vs->locals->list, "__runAs", runAs); return NULL; }