opt for args_isArgExist

This commit is contained in:
pikastech 2022-10-06 13:35:52 +08:00
parent c86fbdff41
commit ddcc2f7242
2 changed files with 12 additions and 12 deletions

View File

@ -11,7 +11,7 @@
"program": "${workspaceFolder}/build/test/pikascript_test", "program": "${workspaceFolder}/build/test/pikascript_test",
// "program": "${workspaceFolder}/build/boot/demo06-pikamain/pikascript_demo06-pikamain", // "program": "${workspaceFolder}/build/boot/demo06-pikamain/pikascript_demo06-pikamain",
"args": [ "args": [
"--gtest_filter=vm.*" // "--gtest_filter=vm.*"
], ],
"stopAtEntry": false, "stopAtEntry": false,
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",

View File

@ -1447,8 +1447,8 @@ static Arg* VM_instruction_handler_OUT(PikaObj* self,
PikaObj* context = vm->locals; PikaObj* context = vm->locals;
/* match global_list */ /* match global_list */
if (args_isArgExist(vm->locals->list, "__gl")) { if (args_isArgExist(vm->locals->list, "@g")) {
char* global_list = args_getStr(vm->locals->list, "__gl"); char* global_list = args_getStr(vm->locals->list, "@g");
/* use a arg as buff */ /* use a arg as buff */
Arg* global_list_arg = arg_newStr(global_list); Arg* global_list_arg = arg_newStr(global_list);
char* global_list_buff = arg_getStr(global_list_arg); char* global_list_buff = arg_getStr(global_list_arg);
@ -1463,8 +1463,8 @@ static Arg* VM_instruction_handler_OUT(PikaObj* self,
arg_deinit(global_list_arg); arg_deinit(global_list_arg);
} }
/* use RunAs object */ /* use RunAs object */
if (args_isArgExist(vm->locals->list, "__runAs")) { if (args_isArgExist(vm->locals->list, "@r")) {
context = args_getPtr(vm->locals->list, "__runAs"); context = args_getPtr(vm->locals->list, "@r");
} }
/* set free object to nomal object */ /* set free object to nomal object */
if (ARG_TYPE_OBJECT_NEW == outArg_type) { if (ARG_TYPE_OBJECT_NEW == outArg_type) {
@ -1502,12 +1502,12 @@ static Arg* VM_instruction_handler_RAS(PikaObj* self,
Arg* arg_ret_reg) { Arg* arg_ret_reg) {
if (strEqu(data, "$origin")) { if (strEqu(data, "$origin")) {
/* use origin object to run */ /* use origin object to run */
obj_removeArg(vm->locals, "__runAs"); obj_removeArg(vm->locals, "@r");
return NULL; return NULL;
} }
/* use "data" object to run */ /* use "data" object to run */
PikaObj* runAs = obj_getObj(vm->locals, data); PikaObj* runAs = obj_getObj(vm->locals, data);
args_setRef(vm->locals->list, "__runAs", runAs); args_setRef(vm->locals->list, "@r", runAs);
return NULL; return NULL;
} }
@ -2102,8 +2102,8 @@ static Arg* __VM_instruction_handler_DEF(PikaObj* self,
PikaObj* hostObj = vm->locals; PikaObj* hostObj = vm->locals;
uint8_t is_in_class = 0; uint8_t is_in_class = 0;
/* use RunAs object */ /* use RunAs object */
if (args_isArgExist(vm->locals->list, "__runAs")) { if (args_isArgExist(vm->locals->list, "@r")) {
hostObj = args_getPtr(vm->locals->list, "__runAs"); hostObj = args_getPtr(vm->locals->list, "@r");
is_in_class = 1; is_in_class = 1;
} }
int offset = 0; int offset = 0;
@ -2277,17 +2277,17 @@ static Arg* VM_instruction_handler_GLB(PikaObj* self,
char* data, char* data,
Arg* arg_ret_reg) { Arg* arg_ret_reg) {
Arg* global_list_buff = NULL; Arg* global_list_buff = NULL;
char* global_list = args_getStr(vm->locals->list, "__gl"); char* global_list = args_getStr(vm->locals->list, "@g");
/* create new global_list */ /* create new global_list */
if (NULL == global_list) { if (NULL == global_list) {
args_setStr(vm->locals->list, "__gl", data); args_setStr(vm->locals->list, "@g", data);
goto exit; goto exit;
} }
/* append to exist global_list */ /* append to exist global_list */
global_list_buff = arg_newStr(global_list); global_list_buff = arg_newStr(global_list);
global_list_buff = arg_strAppend(global_list_buff, ","); global_list_buff = arg_strAppend(global_list_buff, ",");
global_list_buff = arg_strAppend(global_list_buff, data); global_list_buff = arg_strAppend(global_list_buff, data);
args_setStr(vm->locals->list, "__gl", arg_getStr(global_list_buff)); args_setStr(vm->locals->list, "@g", arg_getStr(global_list_buff));
goto exit; goto exit;
exit: exit:
if (NULL != global_list_buff) { if (NULL != global_list_buff) {