\r
struct SQUserData : SQDelegable\r
{\r
- SQUserData(SQSharedState *ss){ _uiRef = 0; _delegate = 0; _hook = NULL; INIT_CHAIN(); ADD_TO_CHAIN(&_ss(this)->_gc_chain, this); }\r
+ SQUserData(SQSharedState *ss){ _delegate = 0; _hook = NULL; INIT_CHAIN(); ADD_TO_CHAIN(&_ss(this)->_gc_chain, this); }\r
~SQUserData()\r
{\r
REMOVE_FROM_CHAIN(&_ss(this)->_gc_chain, this);\r
SetDelegate(NULL);\r
}\r
- static SQUserData* Create(SQSharedState *ss, int size)\r
+ static SQUserData* Create(SQSharedState *ss, SQInteger size)\r
{\r
SQUserData* ud = (SQUserData*)SQ_MALLOC(sizeof(SQUserData)+(size-1));\r
new (ud) SQUserData(ss);\r
#endif\r
void Release() {\r
if (_hook) _hook(_val,_size);\r
- int tsize = _size - 1;\r
+ SQInteger tsize = _size - 1;\r
this->~SQUserData();\r
SQ_FREE(this, sizeof(SQUserData) + tsize);\r
}\r
- void SetDelegate(SQTable *mt)\r
- {\r
- if (mt) __ObjAddRef(mt);\r
- __ObjRelease(_delegate);\r
- _delegate = mt;\r
- }\r
-\r
- \r
- int _size;\r
+ \r
+ SQInteger _size;\r
SQRELEASEHOOK _hook;\r
- unsigned int _typetag;\r
+ SQUserPointer _typetag;\r
SQChar _val[1];\r
};\r
\r