From 9c35b848438f6de7fd43820ed1bfb0060455ea26 Mon Sep 17 00:00:00 2001 From: paladin-t Date: Thu, 21 Jan 2016 13:17:53 +0800 Subject: [PATCH] *fixed a wrong memory copy bug with the PRINT statement; +added TOSTRING meta method to serialize a class instance. --- HISTORY | 2 ++ core/my_basic.c | 53 +++++++++++++++++++++++++++++++++++--------- output/my_basic.exe | Bin 354304 -> 354816 bytes 3 files changed, 45 insertions(+), 10 deletions(-) diff --git a/HISTORY b/HISTORY index 4453454..2d53fde 100755 --- a/HISTORY +++ b/HISTORY @@ -1,4 +1,6 @@ Jan. 21 2016 +Fixed a wrong memory copy bug with the PRINT statement +Added TOSTRING meta method to serialize a class instance Improved type handling Jan. 20 2016 diff --git a/core/my_basic.c b/core/my_basic.c index 09d28da..e83fadb 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -408,6 +408,10 @@ typedef struct _label_t { _ls_node_t* node; } _label_t; +#ifdef MB_ENABLE_CLASS +# define _TO_STRING_FUNC "TOSTRING" +#endif /* MB_ENABLE_CLASS */ + #ifdef MB_ENABLE_CLASS typedef struct _class_t { _ref_t ref; @@ -1545,7 +1549,7 @@ static int _clear_scope_chain(mb_interpreter_t* s); static int _dispose_scope_chain(mb_interpreter_t* s); static void _tidy_scope_chain(mb_interpreter_t* s); static void _tidy_intermediate_value(_ref_t* ref, void* data); -static _object_t* _eval_var_in_print(mb_interpreter_t* s, _ls_node_t** ast, _object_t* obj); +static _object_t* _eval_var_in_print(mb_interpreter_t* s, _object_t** val_ptr, _ls_node_t** ast, _object_t* obj); static void _stepped(mb_interpreter_t* s, _ls_node_t* ast); static int _execute_statement(mb_interpreter_t* s, _ls_node_t** l); @@ -8279,28 +8283,30 @@ void _tidy_intermediate_value(_ref_t* ref, void* data) { } } -_object_t* _eval_var_in_print(mb_interpreter_t* s, _ls_node_t** ast, _object_t* obj) { +_object_t* _eval_var_in_print(mb_interpreter_t* s, _object_t** val_ptr, _ls_node_t** ast, _object_t* obj) { /* Evaluate a variable, this is a helper function for the PRINT statement */ - _object_t* val_ptr = 0; _object_t tmp; if(obj->type == _DT_ROUTINE) { _execute_statement(s, ast); _MAKE_NIL(&tmp); _public_value_to_internal_object(&s->running_context->intermediate_value, &tmp); - val_ptr = obj = &tmp; - if(tmp.type == _DT_STRING) + if(tmp.type == _DT_STRING) { tmp.data.string = mb_strdup(tmp.data.string, strlen(tmp.data.string) + 1); + tmp.ref = false; + mb_make_nil(s->running_context->intermediate_value); + } + **val_ptr = tmp; if(*ast) *ast = (*ast)->prev; } else if(obj->type == _DT_VAR) { - val_ptr = obj = obj->data.variable->data; + *val_ptr = obj->data.variable->data; if(*ast) *ast = (*ast)->next; } else { - val_ptr = obj; + *val_ptr = obj; if(*ast) *ast = (*ast)->next; } - return val_ptr; + return *val_ptr; } void _stepped(mb_interpreter_t* s, _ls_node_t* ast) { @@ -13821,7 +13827,7 @@ int _std_print(mb_interpreter_t* s, void** l) { case _DT_VAR: if(obj->data.variable->data->type == _DT_ROUTINE) { obj = obj->data.variable->data; - val_ptr = _eval_var_in_print(s, &ast, obj); + val_ptr = _eval_var_in_print(s, &val_ptr, &ast, obj); goto _print; } @@ -13831,7 +13837,7 @@ int _std_print(mb_interpreter_t* s, void** l) { if(pathed && pathed->data) { if(obj != (_object_t*)pathed->data) { obj = (_object_t*)pathed->data; - val_ptr = _eval_var_in_print(s, &ast, obj); + val_ptr = _eval_var_in_print(s, &val_ptr, &ast, obj); } } @@ -13870,6 +13876,33 @@ _print: _get_printer(s)(mb_get_type_string(_internal_type_to_public_type(val_ptr->type))); } else if(val_ptr->type == _DT_TYPE) { _get_printer(s)(mb_get_type_string(val_ptr->data.type)); +#ifdef MB_ENABLE_CLASS + } else if(val_ptr->type == _DT_CLASS) { + bool_t got_tostr = false; + _ls_node_t* tsn = _search_identifier_in_class(s, val_ptr->data.instance, _TO_STRING_FUNC, 0, 0); + if(tsn) { + _object_t* tso = (_object_t*)tsn->data; + _ls_node_t* tmp = *l; + mb_value_t va[1]; + mb_make_nil(va[0]); + if(_eval_routine(s, &tmp, va, 1, tso->data.routine, 0, 0) == MB_FUNC_OK) { + val_ptr = &val_obj; + _MAKE_NIL(val_ptr); + _public_value_to_internal_object(&s->running_context->intermediate_value, val_ptr); + if(val_ptr->type == _DT_STRING) { + val_ptr->data.string = mb_strdup(val_ptr->data.string, strlen(val_ptr->data.string) + 1); + val_ptr->ref = false; + mb_make_nil(s->running_context->intermediate_value); + } + obj = val_ptr; + got_tostr = true; + + goto _print; + } + } + + _get_printer(s)(mb_get_type_string(_internal_type_to_public_type(val_ptr->type))); +#endif /* MB_ENABLE_CLASS */ } else { _get_printer(s)(mb_get_type_string(_internal_type_to_public_type(val_ptr->type))); } diff --git a/output/my_basic.exe b/output/my_basic.exe index 70115ff211f42751f234c86bcb08c91a6a354d5f..322707699c331c0b32669671264731a4d90ebe49 100755 GIT binary patch delta 36673 zcmeFadtgl0_6L6Um@pwRK@v$M3`U3qlT6+ZW+EX7q9Td+qiCdPkf=vU(n%0UlpgKD zrKQ!^t+rY!s8-Y?-a-{sZE3alxb!w{U5z$3^ZTrQX7W((_x|lk_`4x!SR2+>5WZuAu%ZQrKJ^c{J;89Q720N`Hi}@7l@R6riD8oBU~n61Kjp zU;Dm!GZy6m9)Ht8!FN(?P3N{7dQ)6b5CZE*DN@r#TBh-np3$^*wE&9$f~T}X)5R4O z2>n5UxAdOIuPq@JfL!o~oxc0BCWJAw)IuAgVTn?xwo3p@6l_Pe<-^@Z

#R%2qr6 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 vpxBn72~(@505j4+>X;sukYBGKRFYxFgWDiUaDE