diff --git a/port/linux/test/pikaMain-test.cpp b/port/linux/test/pikaMain-test.cpp index 097b94b9e..1b4588823 100644 --- a/port/linux/test/pikaMain-test.cpp +++ b/port/linux/test/pikaMain-test.cpp @@ -727,7 +727,6 @@ TEST(pikaMain, list__set__) { __platform_printf((char*)"BEGIN\n"); obj_run(pikaMain, (char*) "list = PikaStdData.List()\n" - "list.append(1)\n" "__set__(list, 0, 2)\n" "res = __get__(list, 0)\n" "\n" @@ -770,7 +769,6 @@ TEST(pikaMain, dict__set__get) { __platform_printf((char*)"BEGIN\n"); obj_run(pikaMain, (char*) "list = PikaStdData.Dict()\n" - "list.set('a', 1)\n" "__set__(list, 'a', 2)\n" "res = __get__(list, 'a')\n" "\n" diff --git a/src/PikaVM.c b/src/PikaVM.c index ec1d3774d..dd00e872f 100644 --- a/src/PikaVM.c +++ b/src/PikaVM.c @@ -217,6 +217,10 @@ static Arg* VM_instruction_handler_OUT(PikaObj* self, char* data) { Arg* outArg = arg_copy(queue_popArg(vmState->q0)); obj_setArg(vmState->locals, data, outArg); + if (TYPE_MATE_OBJECT == arg_getType(outArg)) { + /* init all object */ + obj_getObj(self, data, 0); + } arg_deinit(outArg); return NULL; }