[DEV] remote _userdate()
This commit is contained in:
parent
d80ea723cb
commit
a374a839ce
@ -149,7 +149,6 @@ namespace rabbit {
|
|||||||
#define is_delegable(t) (sq_type(t)&SQOBJECT_DELEGABLE)
|
#define is_delegable(t) (sq_type(t)&SQOBJECT_DELEGABLE)
|
||||||
#define raw_type(obj) _RAW_TYPE((obj)._type)
|
#define raw_type(obj) _RAW_TYPE((obj)._type)
|
||||||
|
|
||||||
#define _userdata(obj) ((obj)._unVal.pUserData)
|
|
||||||
#define _userpointer(obj) ((obj)._unVal.pUserPointer)
|
#define _userpointer(obj) ((obj)._unVal.pUserPointer)
|
||||||
#define _thread(obj) ((obj)._unVal.pThread)
|
#define _thread(obj) ((obj)._unVal.pThread)
|
||||||
#define _funcproto(obj) ((obj)._unVal.pFunctionProto)
|
#define _funcproto(obj) ((obj)._unVal.pFunctionProto)
|
||||||
|
@ -1793,7 +1793,7 @@ void rabbit::VirtualMachine::dumpstack(int64_t stackbase,bool dumpall)
|
|||||||
case rabbit::OT_ARRAY: printf("ARRAY %p",obj.toArray());break;
|
case rabbit::OT_ARRAY: printf("ARRAY %p",obj.toArray());break;
|
||||||
case rabbit::OT_CLOSURE: printf("CLOSURE [%p]",obj.toClosure());break;
|
case rabbit::OT_CLOSURE: printf("CLOSURE [%p]",obj.toClosure());break;
|
||||||
case rabbit::OT_NATIVECLOSURE: printf("NATIVECLOSURE");break;
|
case rabbit::OT_NATIVECLOSURE: printf("NATIVECLOSURE");break;
|
||||||
case rabbit::OT_USERDATA: printf("USERDATA %p[%p]",_userdataval(obj),_userdata(obj)->_delegate);break;
|
case rabbit::OT_USERDATA: printf("USERDATA %p[%p]",_userdataval(obj),obj.toUserData()->_delegate);break;
|
||||||
case rabbit::OT_GENERATOR: printf("GENERATOR %p",obj.toGenerator());break;
|
case rabbit::OT_GENERATOR: printf("GENERATOR %p",obj.toGenerator());break;
|
||||||
case rabbit::OT_THREAD: printf("THREAD [%p]",_thread(obj));break;
|
case rabbit::OT_THREAD: printf("THREAD [%p]",_thread(obj));break;
|
||||||
case rabbit::OT_USERPOINTER: printf("USERPOINTER %p",_userpointer(obj));break;
|
case rabbit::OT_USERPOINTER: printf("USERPOINTER %p",_userpointer(obj));break;
|
||||||
|
@ -740,7 +740,7 @@ int64_t rabbit::sq_getsize(rabbit::VirtualMachine* v, int64_t idx)
|
|||||||
case rabbit::OT_STRING: return o.toString()->_len;
|
case rabbit::OT_STRING: return o.toString()->_len;
|
||||||
case rabbit::OT_TABLE: return o.toTable()->countUsed();
|
case rabbit::OT_TABLE: return o.toTable()->countUsed();
|
||||||
case rabbit::OT_ARRAY: return o.toArray()->size();
|
case rabbit::OT_ARRAY: return o.toArray()->size();
|
||||||
case rabbit::OT_USERDATA: return _userdata(o)->getsize();
|
case rabbit::OT_USERDATA: return o.toUserData()->getsize();
|
||||||
case rabbit::OT_INSTANCE: return _instance(o)->_class->_udsize;
|
case rabbit::OT_INSTANCE: return _instance(o)->_class->_udsize;
|
||||||
case rabbit::OT_CLASS: return _class(o)->_udsize;
|
case rabbit::OT_CLASS: return _class(o)->_udsize;
|
||||||
default:
|
default:
|
||||||
@ -760,7 +760,7 @@ rabbit::Result rabbit::sq_getuserdata(rabbit::VirtualMachine* v,int64_t idx,rabb
|
|||||||
_GETSAFE_OBJ(v, idx, rabbit::OT_USERDATA,o);
|
_GETSAFE_OBJ(v, idx, rabbit::OT_USERDATA,o);
|
||||||
(*p) = _userdataval(*o);
|
(*p) = _userdataval(*o);
|
||||||
if(typetag) {
|
if(typetag) {
|
||||||
*typetag = _userdata(*o)->getTypeTag();
|
*typetag = o->toUserData()->getTypeTag();
|
||||||
}
|
}
|
||||||
return SQ_OK;
|
return SQ_OK;
|
||||||
}
|
}
|
||||||
@ -770,7 +770,7 @@ rabbit::Result rabbit::sq_settypetag(rabbit::VirtualMachine* v,int64_t idx,rabbi
|
|||||||
rabbit::ObjectPtr &o = stack_get(v,idx);
|
rabbit::ObjectPtr &o = stack_get(v,idx);
|
||||||
switch(sq_type(o)) {
|
switch(sq_type(o)) {
|
||||||
case rabbit::OT_USERDATA:
|
case rabbit::OT_USERDATA:
|
||||||
_userdata(o)->setTypeTag(typetag);
|
o.toUserData()->setTypeTag(typetag);
|
||||||
break;
|
break;
|
||||||
case rabbit::OT_CLASS:
|
case rabbit::OT_CLASS:
|
||||||
_class(o)->_typetag = typetag;
|
_class(o)->_typetag = typetag;
|
||||||
@ -785,7 +785,7 @@ rabbit::Result rabbit::sq_getobjtypetag(const rabbit::Object *o,rabbit::UserPoin
|
|||||||
{
|
{
|
||||||
switch(sq_type(*o)) {
|
switch(sq_type(*o)) {
|
||||||
case rabbit::OT_INSTANCE: *typetag = _instance(*o)->_class->_typetag; break;
|
case rabbit::OT_INSTANCE: *typetag = _instance(*o)->_class->_typetag; break;
|
||||||
case rabbit::OT_USERDATA: *typetag = _userdata(*o)->getTypeTag(); break;
|
case rabbit::OT_USERDATA: *typetag = o->toUserData()->getTypeTag(); break;
|
||||||
case rabbit::OT_CLASS: *typetag = _class(*o)->_typetag; break;
|
case rabbit::OT_CLASS: *typetag = _class(*o)->_typetag; break;
|
||||||
default: return SQ_ERROR;
|
default: return SQ_ERROR;
|
||||||
}
|
}
|
||||||
@ -1007,9 +1007,9 @@ rabbit::Result rabbit::sq_setdelegate(rabbit::VirtualMachine* v,int64_t idx)
|
|||||||
break;
|
break;
|
||||||
case rabbit::OT_USERDATA:
|
case rabbit::OT_USERDATA:
|
||||||
if(sq_type(mt)==rabbit::OT_TABLE) {
|
if(sq_type(mt)==rabbit::OT_TABLE) {
|
||||||
_userdata(self)->setDelegate(mt.toTable()); v->pop(); }
|
self.toUserData()->setDelegate(mt.toTable()); v->pop(); }
|
||||||
else if(sq_type(mt)==rabbit::OT_NULL) {
|
else if(sq_type(mt)==rabbit::OT_NULL) {
|
||||||
_userdata(self)->setDelegate(NULL); v->pop(); }
|
self.toUserData()->setDelegate(NULL); v->pop(); }
|
||||||
else return sq_aux_invalidtype(v, type);
|
else return sq_aux_invalidtype(v, type);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -1264,7 +1264,7 @@ void rabbit::sq_setreleasehook(rabbit::VirtualMachine* v,int64_t idx,SQRELEASEHO
|
|||||||
rabbit::ObjectPtr &ud=stack_get(v,idx);
|
rabbit::ObjectPtr &ud=stack_get(v,idx);
|
||||||
switch(sq_type(ud) ) {
|
switch(sq_type(ud) ) {
|
||||||
case rabbit::OT_USERDATA:
|
case rabbit::OT_USERDATA:
|
||||||
_userdata(ud)->setHook(hook);
|
ud.toUserData()->setHook(hook);
|
||||||
break;
|
break;
|
||||||
case rabbit::OT_INSTANCE:
|
case rabbit::OT_INSTANCE:
|
||||||
_instance(ud)->_hook = hook;
|
_instance(ud)->_hook = hook;
|
||||||
@ -1282,7 +1282,7 @@ SQRELEASEHOOK rabbit::sq_getreleasehook(rabbit::VirtualMachine* v,int64_t idx)
|
|||||||
rabbit::ObjectPtr &ud=stack_get(v,idx);
|
rabbit::ObjectPtr &ud=stack_get(v,idx);
|
||||||
switch(sq_type(ud) ) {
|
switch(sq_type(ud) ) {
|
||||||
case rabbit::OT_USERDATA:
|
case rabbit::OT_USERDATA:
|
||||||
return _userdata(ud)->getHook();
|
return ud.toUserData()->getHook();
|
||||||
break;
|
break;
|
||||||
case rabbit::OT_INSTANCE:
|
case rabbit::OT_INSTANCE:
|
||||||
return _instance(ud)->_hook;
|
return _instance(ud)->_hook;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user