diff --git a/rabbit/Generator.cpp b/rabbit/Generator.cpp index 8866d7e..b750400 100644 --- a/rabbit/Generator.cpp +++ b/rabbit/Generator.cpp @@ -22,7 +22,7 @@ bool rabbit::Generator::yield(rabbit::VirtualMachine *v,int64_t target) _stack.resize(size); rabbit::Object _this = v->_stack[v->_stackbase]; - _stack[0] = ISREFCOUNTED(sq_type(_this)) ? rabbit::ObjectPtr(_refcounted(_this)->getWeakRef(sq_type(_this))) : _this; + _stack[0] = ISREFCOUNTED(sq_type(_this)) ? rabbit::ObjectPtr(_this.toRefCounted()->getWeakRef(sq_type(_this))) : _this; for(int64_t n =1; n_stack[v->_stackbase+n]; } diff --git a/rabbit/Object.hpp b/rabbit/Object.hpp index e3aa130..9677166 100644 --- a/rabbit/Object.hpp +++ b/rabbit/Object.hpp @@ -149,7 +149,6 @@ namespace rabbit { #define is_delegable(t) (sq_type(t)&SQOBJECT_DELEGABLE) #define raw_type(obj) _RAW_TYPE((obj)._type) - #define _refcounted(obj) ((obj)._unVal.pRefCounted) #define _rawval(obj) ((obj)._unVal.raw) #define _stringval(obj) (obj)._unVal.pString->_val diff --git a/rabbit/sqapi.cpp b/rabbit/sqapi.cpp index e48f507..87e8b9c 100644 --- a/rabbit/sqapi.cpp +++ b/rabbit/sqapi.cpp @@ -471,7 +471,7 @@ rabbit::Result rabbit::sq_bindenv(rabbit::VirtualMachine* v,int64_t idx) !sq_isclass(env) && !sq_isinstance(env)) return sq_throwerror(v,"invalid environment"); - rabbit::WeakRef *w = _refcounted(env)->getWeakRef(sq_type(env)); + rabbit::WeakRef *w = env.toRefCounted()->getWeakRef(sq_type(env)); rabbit::ObjectPtr ret; if(sq_isclosure(o)) { rabbit::Closure *c = o.toClosure()->clone(); @@ -1554,7 +1554,7 @@ void rabbit::sq_weakref(rabbit::VirtualMachine* v,int64_t idx) { rabbit::Object &o=stack_get(v,idx); if(ISREFCOUNTED(sq_type(o))) { - v->push(_refcounted(o)->getWeakRef(sq_type(o))); + v->push(o.toRefCounted()->getWeakRef(sq_type(o))); return; } v->push(o);