mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
fix ac5 war
This commit is contained in:
parent
941b3ad569
commit
7ca4a148d2
@ -122,65 +122,68 @@ int32_t obj_deinit(PikaObj* self) {
|
||||
return obj_deinit_no_del(self);
|
||||
}
|
||||
|
||||
int32_t obj_setInt(PikaObj* self, char* argPath, int64_t val) {
|
||||
PIKA_RES obj_setInt(PikaObj* self, char* argPath, int64_t val) {
|
||||
PikaObj* obj = obj_getHostObj(self, argPath);
|
||||
if (NULL == obj) {
|
||||
/* [error] object no found */
|
||||
return 1;
|
||||
return PIKA_RES_ERR_ARG_NO_FOUND;
|
||||
}
|
||||
char* name = strPointToLastToken(argPath, '.');
|
||||
args_setInt(obj->list, name, val);
|
||||
return 0;
|
||||
return PIKA_RES_OK;
|
||||
}
|
||||
|
||||
int32_t obj_setPtr(PikaObj* self, char* argPath, void* pointer) {
|
||||
PIKA_RES obj_setPtr(PikaObj* self, char* argPath, void* pointer) {
|
||||
PikaObj* obj = obj_getHostObj(self, argPath);
|
||||
if (NULL == obj) {
|
||||
return 1;
|
||||
/* [error] object no found */
|
||||
return PIKA_RES_ERR_ARG_NO_FOUND;
|
||||
}
|
||||
char* name = strPointToLastToken(argPath, '.');
|
||||
args_setPtr(obj->list, name, pointer);
|
||||
return 0;
|
||||
return PIKA_RES_OK;
|
||||
}
|
||||
|
||||
int32_t obj_setRef(PikaObj* self, char* argPath, void* pointer) {
|
||||
PIKA_RES obj_setRef(PikaObj* self, char* argPath, void* pointer) {
|
||||
PikaObj* obj = obj_getHostObj(self, argPath);
|
||||
if (NULL == obj) {
|
||||
return 1;
|
||||
/* [error] object no found */
|
||||
return PIKA_RES_ERR_ARG_NO_FOUND;
|
||||
}
|
||||
char* name = strPointToLastToken(argPath, '.');
|
||||
args_setRef(obj->list, name, pointer);
|
||||
return 0;
|
||||
return PIKA_RES_OK;
|
||||
}
|
||||
|
||||
int32_t obj_setFloat(PikaObj* self, char* argPath, double value) {
|
||||
PIKA_RES obj_setFloat(PikaObj* self, char* argPath, double value) {
|
||||
PikaObj* obj = obj_getHostObj(self, argPath);
|
||||
if (NULL == obj) {
|
||||
return 1;
|
||||
/* [error] object no found */
|
||||
return PIKA_RES_ERR_ARG_NO_FOUND;
|
||||
}
|
||||
char* name = strPointToLastToken(argPath, '.');
|
||||
args_setFloat(obj->list, name, value);
|
||||
return 0;
|
||||
return PIKA_RES_OK;
|
||||
}
|
||||
|
||||
int32_t obj_setStr(PikaObj* self, char* argPath, char* str) {
|
||||
PIKA_RES obj_setStr(PikaObj* self, char* argPath, char* str) {
|
||||
PikaObj* obj = obj_getHostObj(self, argPath);
|
||||
if (NULL == obj) {
|
||||
return 1;
|
||||
return PIKA_RES_ERR_ARG_NO_FOUND;
|
||||
}
|
||||
char* name = strPointToLastToken(argPath, '.');
|
||||
args_setStr(obj->list, name, str);
|
||||
return 0;
|
||||
return PIKA_RES_OK;
|
||||
}
|
||||
|
||||
int32_t obj_setBytes(PikaObj* self, char* argPath, uint8_t* src, size_t size) {
|
||||
PIKA_RES obj_setBytes(PikaObj* self, char* argPath, uint8_t* src, size_t size) {
|
||||
PikaObj* obj = obj_getHostObj(self, argPath);
|
||||
if (NULL == obj) {
|
||||
return 1;
|
||||
return PIKA_RES_ERR_ARG_NO_FOUND;
|
||||
}
|
||||
char* name = strPointToLastToken(argPath, '.');
|
||||
args_setBytes(obj->list, name, src, size);
|
||||
return 0;
|
||||
return PIKA_RES_OK;
|
||||
}
|
||||
|
||||
int64_t obj_getInt(PikaObj* self, char* argPath) {
|
||||
@ -240,7 +243,7 @@ size_t obj_loadBytes(PikaObj* self, char* argPath, uint8_t* out_buff) {
|
||||
return size_mem;
|
||||
}
|
||||
|
||||
static int32_t __obj_setArg(PikaObj* self,
|
||||
static PIKA_RES __obj_setArg(PikaObj* self,
|
||||
char* argPath,
|
||||
Arg* arg,
|
||||
uint8_t is_copy) {
|
||||
@ -248,7 +251,7 @@ static int32_t __obj_setArg(PikaObj* self,
|
||||
PikaObj* obj = obj_getHostObj(self, argPath);
|
||||
if (NULL == obj) {
|
||||
/* object no found */
|
||||
return 1;
|
||||
return PIKA_RES_ERR_ARG_NO_FOUND;
|
||||
}
|
||||
char* argName = strPointToLastToken(argPath, '.');
|
||||
Arg* newArg;
|
||||
@ -259,14 +262,14 @@ static int32_t __obj_setArg(PikaObj* self,
|
||||
}
|
||||
newArg = arg_setName(newArg, argName);
|
||||
args_setArg(obj->list, newArg);
|
||||
return 0;
|
||||
return PIKA_RES_OK;
|
||||
}
|
||||
|
||||
int32_t obj_setArg(PikaObj* self, char* argPath, Arg* arg) {
|
||||
PIKA_RES obj_setArg(PikaObj* self, char* argPath, Arg* arg) {
|
||||
return __obj_setArg(self, argPath, arg, 1);
|
||||
};
|
||||
|
||||
int32_t obj_setArg_noCopy(PikaObj* self, char* argPath, Arg* arg) {
|
||||
PIKA_RES obj_setArg_noCopy(PikaObj* self, char* argPath, Arg* arg) {
|
||||
return __obj_setArg(self, argPath, arg, 0);
|
||||
}
|
||||
|
||||
|
@ -100,14 +100,14 @@ int32_t obj_enable(PikaObj* self);
|
||||
int32_t obj_disable(PikaObj* self);
|
||||
|
||||
// arg type operations
|
||||
int32_t obj_setInt(PikaObj* self, char* argPath, int64_t val);
|
||||
int32_t obj_setRef(PikaObj* self, char* argPath, void* pointer);
|
||||
int32_t obj_setPtr(PikaObj* self, char* argPath, void* pointer);
|
||||
int32_t obj_setFloat(PikaObj* self, char* argPath, double value);
|
||||
int32_t obj_setStr(PikaObj* self, char* argPath, char* str);
|
||||
int32_t obj_setArg(PikaObj* self, char* argPath, Arg* arg);
|
||||
int32_t obj_setArg_noCopy(PikaObj* self, char* argPath, Arg* arg);
|
||||
int32_t obj_setBytes(PikaObj* self, char* argPath, uint8_t* src, size_t size);
|
||||
PIKA_RES obj_setInt(PikaObj* self, char* argPath, int64_t val);
|
||||
PIKA_RES obj_setRef(PikaObj* self, char* argPath, void* pointer);
|
||||
PIKA_RES obj_setPtr(PikaObj* self, char* argPath, void* pointer);
|
||||
PIKA_RES obj_setFloat(PikaObj* self, char* argPath, double value);
|
||||
PIKA_RES obj_setStr(PikaObj* self, char* argPath, char* str);
|
||||
PIKA_RES obj_setArg(PikaObj* self, char* argPath, Arg* arg);
|
||||
PIKA_RES obj_setArg_noCopy(PikaObj* self, char* argPath, Arg* arg);
|
||||
PIKA_RES obj_setBytes(PikaObj* self, char* argPath, uint8_t* src, size_t size);
|
||||
|
||||
void* obj_getPtr(PikaObj* self, char* argPath);
|
||||
double obj_getFloat(PikaObj* self, char* argPath);
|
||||
|
@ -163,7 +163,7 @@ char* strsPopTokenWithSkip_byStr(Args* outBuffs,
|
||||
}
|
||||
|
||||
char* strsGetCleanCmd(Args* outBuffs, char* cmd) {
|
||||
pika_assert(cmd!=NULL);
|
||||
pika_assert(cmd != NULL);
|
||||
int32_t size = strGetSize(cmd);
|
||||
/* lexer may generate more chars than input */
|
||||
char* strOut = args_getBuff(outBuffs, size * 2);
|
||||
@ -1301,7 +1301,7 @@ char* Parser_popSubStmt(Args* outbuffs, char** stmt_p, char* delimiter) {
|
||||
Arg* substmt_arg = arg_newStr("");
|
||||
Arg* newstmt_arg = arg_newStr("");
|
||||
char* stmt = *stmt_p;
|
||||
PIKA_BOOL is_get_substmt = 0;
|
||||
PIKA_BOOL is_get_substmt = PIKA_FALSE;
|
||||
Args buffs = {0};
|
||||
ParserState_forEachToken(ps, stmt) {
|
||||
ParserState_iterStart(&ps);
|
||||
@ -1319,7 +1319,7 @@ char* Parser_popSubStmt(Args* outbuffs, char** stmt_p, char* delimiter) {
|
||||
}
|
||||
if (strEqu(ps.token1.pyload, delimiter)) {
|
||||
/* found delimiter */
|
||||
is_get_substmt = 1;
|
||||
is_get_substmt = PIKA_TRUE;
|
||||
ParserState_iterEnd(&ps);
|
||||
continue;
|
||||
}
|
||||
@ -1861,7 +1861,7 @@ AST* AST_parseLine(char* line, Stack* block_stack) {
|
||||
}
|
||||
|
||||
block_matched:
|
||||
if (NULL == stmt){
|
||||
if (NULL == stmt) {
|
||||
AST_deinit(ast);
|
||||
ast = NULL;
|
||||
goto exit;
|
||||
@ -2540,13 +2540,16 @@ ByteCodeFrame* byteCodeFrame_appendFromAsm(ByteCodeFrame* self, char* pikaAsm) {
|
||||
};
|
||||
uint16_t const_pool_offset;
|
||||
uint16_t exist_offset;
|
||||
|
||||
int invoke_deepth_int = 0;
|
||||
for (int i = 0; i < strCountSign(pikaAsm, '\n'); i++) {
|
||||
Args buffs = {0};
|
||||
char* line = strsGetLine(&buffs, asmer.line_pointer);
|
||||
char* data = NULL;
|
||||
char ins_str[4] = "";
|
||||
char invoke_deepth[3] = "";
|
||||
uint8_t space_num = 0;
|
||||
uint8_t invoke_deepth_i = 0;
|
||||
uint8_t ins_str_i = 0;
|
||||
Arg* line_buff = arg_newStr(line);
|
||||
strsDeinit(&buffs);
|
||||
line = arg_getStr(line_buff);
|
||||
@ -2567,9 +2570,6 @@ ByteCodeFrame* byteCodeFrame_appendFromAsm(ByteCodeFrame* self, char* pikaAsm) {
|
||||
/* get constPool offset */
|
||||
const_pool_offset = 0;
|
||||
|
||||
uint8_t space_num = 0;
|
||||
uint8_t invoke_deepth_i = 0;
|
||||
uint8_t ins_str_i = 0;
|
||||
for (int i = 0; i < (int)strGetSize(line); i++) {
|
||||
if (space_num < 2) {
|
||||
if (line[i] == ' ') {
|
||||
@ -2607,7 +2607,7 @@ ByteCodeFrame* byteCodeFrame_appendFromAsm(ByteCodeFrame* self, char* pikaAsm) {
|
||||
const_pool_offset = exist_offset;
|
||||
}
|
||||
|
||||
int invoke_deepth_int = fast_atoi(invoke_deepth);
|
||||
invoke_deepth_int = fast_atoi(invoke_deepth);
|
||||
/* load Asm to byte code unit */
|
||||
instructUnit_setBlockDeepth(&ins_unit, asmer.block_deepth_now);
|
||||
instructUnit_setInvokeDeepth(&ins_unit, invoke_deepth_int);
|
||||
|
@ -53,7 +53,7 @@ static Arg* arg_init_hash(Hash nameHash,
|
||||
uint32_t size,
|
||||
Arg* next) {
|
||||
Arg* self = (Arg*)pikaMalloc(sizeof(Arg) + size);
|
||||
self->next = next;
|
||||
arg_setNext(self, next);
|
||||
self->size = size;
|
||||
self->name_hash = nameHash;
|
||||
self->type = type;
|
||||
@ -77,7 +77,7 @@ static Arg* arg_init(char* name,
|
||||
}
|
||||
|
||||
void arg_init_stack(Arg* self, uint8_t* buffer, uint32_t size) {
|
||||
self->buffer = buffer;
|
||||
self->_.buffer = buffer;
|
||||
self->size = size;
|
||||
self->type = ARG_TYPE_UNDEF;
|
||||
self->name_hash = 0;
|
||||
|
@ -56,11 +56,12 @@ typedef enum {
|
||||
typedef void (*StructDeinitFun)(void* struct_);
|
||||
|
||||
typedef struct Arg Arg;
|
||||
typedef union {
|
||||
Arg* next;
|
||||
uint8_t* buffer;
|
||||
} _arg_union;
|
||||
struct Arg {
|
||||
union {
|
||||
Arg* next;
|
||||
uint8_t* buffer;
|
||||
};
|
||||
_arg_union _;
|
||||
uint32_t size;
|
||||
uint8_t type;
|
||||
PIKA_BOOL serialized;
|
||||
@ -128,21 +129,21 @@ void arg_printBytes(Arg* self);
|
||||
Arg* arg_loadFile(Arg* self, char* filename);
|
||||
uint8_t argType_isObject(ArgType type);
|
||||
|
||||
#define arg_getNext(self) ((self)->next)
|
||||
#define arg_getNext(self) ((self)->_.next)
|
||||
#define arg_getSize(self) ((self)->size)
|
||||
#define arg_getContent(self) \
|
||||
((self)->serialized ? (self)->content : ((self)->buffer))
|
||||
#define arg_getNext(self) ((self)->next)
|
||||
#define arg_setNext(self, __next) ((self)->next = (__next))
|
||||
((self)->serialized ? (self)->content : ((self)->_.buffer))
|
||||
#define arg_getNext(self) ((self)->_.next)
|
||||
#define arg_setNext(self, __next) ((self)->_.next = (__next))
|
||||
|
||||
#define argType_isObject(type) \
|
||||
((type) == ARG_TYPE_OBJECT || (type) == ARG_TYPE_OBJECT_NEW)
|
||||
|
||||
#endif
|
||||
|
||||
#define arg_newReg(__name, __size) \
|
||||
Arg __name = {0}; \
|
||||
uint8_t __##__name##_buff[__size] = {0}; \
|
||||
#define arg_newReg(__name, __size) \
|
||||
Arg __name = {0}; \
|
||||
uint8_t __##__name##_buff[__size] = {0}; \
|
||||
arg_init_stack(&__name, __##__name##_buff, __size)
|
||||
|
||||
void arg_init_stack(Arg* self, uint8_t* buffer, uint32_t size);
|
||||
|
@ -78,7 +78,7 @@ void stack_pushPyload(Stack* stack, Arg* content, size_t size) {
|
||||
__platform_memcpy(stack->sp, content, size);
|
||||
} else {
|
||||
__platform_memcpy(stack->sp, content, sizeof(Arg));
|
||||
__platform_memcpy(stack->sp + sizeof(Arg), content->buffer,
|
||||
__platform_memcpy(stack->sp + sizeof(Arg), content->_.buffer,
|
||||
size - sizeof(Arg));
|
||||
/* transfer to serialized form */
|
||||
((Arg*)stack->sp)->serialized = PIKA_TRUE;
|
||||
|
Loading…
x
Reference in New Issue
Block a user