+added a tobe returned parameter to the mb_eval_routine function; *fixed a mistake.
This commit is contained in:
parent
1eff3e902b
commit
38c7908bc7
3
HISTORY
3
HISTORY
@ -1,3 +1,6 @@
|
|||||||
|
May. 6 2017
|
||||||
|
Added a tobe returned parameter to the mb_eval_routine function
|
||||||
|
|
||||||
May. 3 2017
|
May. 3 2017
|
||||||
Added reenterable running
|
Added reenterable running
|
||||||
Fixed a multiple disposing bug
|
Fixed a multiple disposing bug
|
||||||
|
Binary file not shown.
@ -1535,17 +1535,17 @@ static void _real_to_str(real_t r, char* str, size_t size, size_t afterpoint);
|
|||||||
break;
|
break;
|
||||||
# define _UNREF_COLL_IT(__o) \
|
# define _UNREF_COLL_IT(__o) \
|
||||||
case _DT_LIST_IT: \
|
case _DT_LIST_IT: \
|
||||||
_destroy_list_it(obj->data.list_it); \
|
_destroy_list_it((__o)->data.list_it); \
|
||||||
break; \
|
break; \
|
||||||
case _DT_DICT_IT: \
|
case _DT_DICT_IT: \
|
||||||
_destroy_dict_it(obj->data.dict_it); \
|
_destroy_dict_it((__o)->data.dict_it); \
|
||||||
break;
|
break;
|
||||||
# define _ADDGC_COLL_IT(__o, __g) \
|
# define _ADDGC_COLL_IT(__o, __g) \
|
||||||
case _DT_LIST_IT: \
|
case _DT_LIST_IT: \
|
||||||
_destroy_list_it(obj->data.list_it); \
|
_destroy_list_it((__o)->data.list_it); \
|
||||||
break; \
|
break; \
|
||||||
case _DT_DICT_IT: \
|
case _DT_DICT_IT: \
|
||||||
_destroy_dict_it(obj->data.dict_it); \
|
_destroy_dict_it((__o)->data.dict_it); \
|
||||||
break;
|
break;
|
||||||
#else /* MB_ENABLE_COLLECTION_LIB */
|
#else /* MB_ENABLE_COLLECTION_LIB */
|
||||||
# define _REF_COLL(__o) { (void)(__o); }
|
# define _REF_COLL(__o) { (void)(__o); }
|
||||||
@ -12934,7 +12934,7 @@ _exit:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Evaluate a sub routine */
|
/* Evaluate a sub routine */
|
||||||
int mb_eval_routine(struct mb_interpreter_t* s, void** l, mb_value_t val, mb_value_t* args, unsigned argc) {
|
int mb_eval_routine(struct mb_interpreter_t* s, void** l, mb_value_t val, mb_value_t* args, unsigned argc, mb_value_t* ret) {
|
||||||
int result = MB_FUNC_OK;
|
int result = MB_FUNC_OK;
|
||||||
_object_t obj;
|
_object_t obj;
|
||||||
|
|
||||||
@ -12952,6 +12952,14 @@ int mb_eval_routine(struct mb_interpreter_t* s, void** l, mb_value_t val, mb_val
|
|||||||
_public_value_to_internal_object(&val, &obj);
|
_public_value_to_internal_object(&val, &obj);
|
||||||
result = _eval_routine(s, (_ls_node_t**)l, args, argc, obj.data.routine, _has_routine_fun_arg, _pop_routine_fun_arg);
|
result = _eval_routine(s, (_ls_node_t**)l, args, argc, obj.data.routine, _has_routine_fun_arg, _pop_routine_fun_arg);
|
||||||
|
|
||||||
|
if(ret) {
|
||||||
|
_running_context_t* running = s->running_context;
|
||||||
|
_assign_public_value(ret, &running->intermediate_value);
|
||||||
|
_MAKE_NIL(&obj);
|
||||||
|
_public_value_to_internal_object(ret, &obj);
|
||||||
|
_ADDGC(&obj, &s->gc);
|
||||||
|
}
|
||||||
|
|
||||||
_exit:
|
_exit:
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -629,7 +629,7 @@ MBAPI int mb_dispose_value(struct mb_interpreter_t* s, mb_value_t val);
|
|||||||
|
|
||||||
MBAPI int mb_get_routine(struct mb_interpreter_t* s, void** l, const char* n, mb_value_t* val);
|
MBAPI int mb_get_routine(struct mb_interpreter_t* s, void** l, const char* n, mb_value_t* val);
|
||||||
MBAPI int mb_set_routine(struct mb_interpreter_t* s, void** l, const char* n, mb_routine_func_t f, bool_t force);
|
MBAPI int mb_set_routine(struct mb_interpreter_t* s, void** l, const char* n, mb_routine_func_t f, bool_t force);
|
||||||
MBAPI int mb_eval_routine(struct mb_interpreter_t* s, void** l, mb_value_t val, mb_value_t* args, unsigned argc);
|
MBAPI int mb_eval_routine(struct mb_interpreter_t* s, void** l, mb_value_t val, mb_value_t* args, unsigned argc, mb_value_t* ret/* = NULL*/);
|
||||||
|
|
||||||
MBAPI int mb_load_string(struct mb_interpreter_t* s, const char* l, bool_t reset/* = true*/);
|
MBAPI int mb_load_string(struct mb_interpreter_t* s, const char* l, bool_t reset/* = true*/);
|
||||||
MBAPI int mb_load_file(struct mb_interpreter_t* s, const char* f);
|
MBAPI int mb_load_file(struct mb_interpreter_t* s, const char* f);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user