init the mate obj when OUT

This commit is contained in:
lyon 2022-01-14 22:38:02 +08:00
parent d2791f66bd
commit a1d1d12d32
2 changed files with 4 additions and 2 deletions

View File

@ -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"

View File

@ -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;
}