diff --git a/HISTORY b/HISTORY index 64319e5..e853896 100755 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,6 @@ +Feb. 16 2017 +Improved meta function + Feb. 14 2017 Fixed a wrong routing unreferencing bug diff --git a/core/my_basic.c b/core/my_basic.c index 0aea616..e1a7b00 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -4538,9 +4538,9 @@ static mb_meta_status_u _try_overridden(mb_interpreter_t* s, void** l, mb_value_ _MAKE_NIL(&obj); _public_value_to_internal_object(d, &obj); if(t == MB_MF_COLL && obj.data.usertype_ref->coll_func) - return obj.data.usertype_ref->coll_func(s, l, f); + return obj.data.usertype_ref->coll_func(s, l, d, f); else if(t == MB_MF_FUNC && obj.data.usertype_ref->generic_func) - return obj.data.usertype_ref->generic_func(s, l, f); + return obj.data.usertype_ref->generic_func(s, l, d, f); } #endif /* MB_ENABLE_USERTYPE_REF */ #ifdef MB_ENABLE_CLASS diff --git a/core/my_basic.h b/core/my_basic.h index 9f91c62..40c7e9b 100755 --- a/core/my_basic.h +++ b/core/my_basic.h @@ -552,7 +552,7 @@ typedef unsigned (* mb_hash_func_t)(struct mb_interpreter_t*, void*); typedef int (* mb_cmp_func_t)(struct mb_interpreter_t*, void*, void*); typedef int (* mb_fmt_func_t)(struct mb_interpreter_t*, void*, char*, unsigned); typedef int (* mb_meta_operator_t)(struct mb_interpreter_t*, void**, mb_value_t*, mb_value_t*, mb_value_t*); -typedef mb_meta_status_u (* mb_meta_func_t)(struct mb_interpreter_t*, void**, const char*); +typedef mb_meta_status_u (* mb_meta_func_t)(struct mb_interpreter_t*, void**, mb_value_t*, const char*); typedef char* (* mb_memory_allocate_func_t)(unsigned); typedef void (* mb_memory_free_func_t)(char*);