add arg_newObj api

This commit is contained in:
pikastech 2022-09-05 17:43:17 +08:00
parent 4486de76e9
commit a563f7947c
6 changed files with 16 additions and 8 deletions

View File

@ -19,6 +19,9 @@
"re.h": "c", "re.h": "c",
"cre.h": "c", "cre.h": "c",
"pcre.h": "c", "pcre.h": "c",
"pikastddata_dict.h": "c" "pikastddata_dict.h": "c",
"pikacv.h": "c",
"pikacv_image.h": "c",
"pikacv_filter.h": "c"
} }
} }

View File

@ -406,7 +406,7 @@ PikaObj* PikaCV_Image_split(PikaObj* self) {
PikaObj* img = newNormalObj(New_PikaCV_Image); PikaObj* img = newNormalObj(New_PikaCV_Image);
PikaCV_Image___init__(img); PikaCV_Image___init__(img);
PikaCV_Image_loadGray(img, src->width, src->height, RGB[i]); PikaCV_Image_loadGray(img, src->width, src->height, RGB[i]);
Arg* token_arg = arg_newPtr(ARG_TYPE_OBJECT, img); Arg* token_arg = arg_newObj(img);
/* 添加到 list 对象 */ /* 添加到 list 对象 */
PikaStdData_List_append(list, token_arg); PikaStdData_List_append(list, token_arg);
/* 销毁 arg */ /* 销毁 arg */

View File

@ -948,7 +948,7 @@ PikaObj *__findall(void *pattern__or__re,
} }
sub_list = newNormalObj(New_PikaStdData_Tuple); sub_list = newNormalObj(New_PikaStdData_Tuple);
obj_setPtr(sub_list, "list", tu); obj_setPtr(sub_list, "list", tu);
sub_arg = arg_newPtr(ARG_TYPE_OBJECT, sub_list); sub_arg = arg_newObj(sub_list);
PikaStdData_List_append(list, sub_arg); PikaStdData_List_append(list, sub_arg);
arg_deinit(sub_arg); arg_deinit(sub_arg);
free(b); free(b);

View File

@ -975,9 +975,13 @@ PikaObj* New_PikaObj(void) {
return self; return self;
} }
Arg* arg_setObj(Arg* self, char* name, PikaObj* obj) {
return arg_setPtr(self, name, ARG_TYPE_OBJECT, obj);
}
Arg* arg_setRef(Arg* self, char* name, PikaObj* obj) { Arg* arg_setRef(Arg* self, char* name, PikaObj* obj) {
obj_refcntInc(obj); obj_refcntInc(obj);
return arg_setPtr(self, name, ARG_TYPE_OBJECT, obj); return arg_setObj(self, name, obj);
} }
int32_t obj_newDirectObj(PikaObj* self, char* objName, NewFun newFunPtr) { int32_t obj_newDirectObj(PikaObj* self, char* objName, NewFun newFunPtr) {

View File

@ -231,8 +231,9 @@ Arg* obj_newObjInPackage(NewFun newObjFun);
PikaObj* newNormalObj(NewFun newObjFun); PikaObj* newNormalObj(NewFun newObjFun);
Arg* arg_setRef(Arg* self, char* name, PikaObj* obj); Arg* arg_setRef(Arg* self, char* name, PikaObj* obj);
Arg* arg_setWeakRef(Arg* self, char* name, PikaObj* obj); Arg* arg_setObj(Arg* self, char* name, PikaObj* obj);
#define arg_newObj(obj) arg_setObj(NULL, "", (obj))
#define arg_newRef(obj) arg_setRef(NULL, "", (obj)) #define arg_newRef(obj) arg_setRef(NULL, "", (obj))
#define arg_newWeakRef(obj) arg_setWeakRef(NULL, "", (obj)) #define arg_newWeakRef(obj) arg_setWeakRef(NULL, "", (obj))

View File

@ -372,7 +372,7 @@ Arg* __vm_slice(PikaObj* self, Arg* end, Arg* obj, Arg* start, int step) {
arg_deinit(item_arg); arg_deinit(item_arg);
arg_deinit(i_arg); arg_deinit(i_arg);
} }
return arg_newPtr(ARG_TYPE_OBJECT, sliced_obj); return arg_newObj(sliced_obj);
} }
} }
return arg_newNull(); return arg_newNull();
@ -815,7 +815,7 @@ static Arg* _vm_create_list_or_tuple(PikaObj* self,
arg_deinit(arg); arg_deinit(arg);
} }
stack_deinit(&stack); stack_deinit(&stack);
return arg_newPtr(ARG_TYPE_OBJECT, list); return arg_newObj(list);
#else #else
return VM_instruction_handler_NON(self, vm, "", NULL); return VM_instruction_handler_NON(self, vm, "", NULL);
#endif #endif
@ -872,7 +872,7 @@ static Arg* VM_instruction_handler_DCT(PikaObj* self,
arg_deinit(val_arg); arg_deinit(val_arg);
} }
stack_deinit(&stack); stack_deinit(&stack);
return arg_newPtr(ARG_TYPE_OBJECT, dict); return arg_newObj(dict);
#else #else
return VM_instruction_handler_NON(self, vm, data, arg_ret_reg); return VM_instruction_handler_NON(self, vm, data, arg_ret_reg);
#endif #endif