#define _delegable(obj) ((SQDelegable *)(obj)._unVal.pDelegable)
#define _weakref(obj) ((obj)._unVal.pWeakRef)
#define _refcounted(obj) ((obj)._unVal.pRefCounted)
-#define _rawval(obj) ((obj)._unVal.pRefCounted)
+#define _rawval(obj) ((obj)._unVal.raw)
#define _stringval(obj) (obj)._unVal.pString->_val
#define _userdataval(obj) (obj)._unVal.pUserData->_val
{
SQObjectPtr()
{
+ SQ_OBJECT_RAWINIT()
_type=OT_NULL;
_unVal.pUserPointer=NULL;
}
SQObjectPtr(const SQObjectPtr &o)
{
+ SQ_OBJECT_RAWINIT()
_type=o._type;
_unVal=o._unVal;
__AddRef(_type,_unVal);
}
SQObjectPtr(const SQObject &o)
{
+ SQ_OBJECT_RAWINIT()
_type=o._type;
_unVal=o._unVal;
__AddRef(_type,_unVal);
}
SQObjectPtr(SQTable *pTable)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_TABLE;
_unVal.pTable=pTable;
assert(_unVal.pTable);
}
SQObjectPtr(SQClass *pClass)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_CLASS;
_unVal.pClass=pClass;
assert(_unVal.pClass);
}
SQObjectPtr(SQInstance *pInstance)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_INSTANCE;
_unVal.pInstance=pInstance;
assert(_unVal.pInstance);
}
SQObjectPtr(SQArray *pArray)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_ARRAY;
_unVal.pArray=pArray;
assert(_unVal.pArray);
}
SQObjectPtr(SQClosure *pClosure)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_CLOSURE;
_unVal.pClosure=pClosure;
assert(_unVal.pClosure);
}
SQObjectPtr(SQGenerator *pGenerator)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_GENERATOR;
_unVal.pGenerator=pGenerator;
assert(_unVal.pGenerator);
}
SQObjectPtr(SQNativeClosure *pNativeClosure)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_NATIVECLOSURE;
_unVal.pNativeClosure=pNativeClosure;
assert(_unVal.pNativeClosure);
}
SQObjectPtr(SQString *pString)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_STRING;
_unVal.pString=pString;
assert(_unVal.pString);
}
SQObjectPtr(SQUserData *pUserData)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_USERDATA;
_unVal.pUserData=pUserData;
assert(_unVal.pUserData);
}
SQObjectPtr(SQVM *pThread)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_THREAD;
_unVal.pThread=pThread;
assert(_unVal.pThread);
}
SQObjectPtr(SQWeakRef *pWeakRef)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_WEAKREF;
_unVal.pWeakRef=pWeakRef;
assert(_unVal.pWeakRef);
}
SQObjectPtr(SQFunctionProto *pFunctionProto)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_FUNCPROTO;
_unVal.pFunctionProto=pFunctionProto;
assert(_unVal.pFunctionProto);
}
SQObjectPtr(SQInteger nInteger)
{
- _unVal.pUserPointer=NULL;
+ SQ_OBJECT_RAWINIT()
_type=OT_INTEGER;
_unVal.nInteger=nInteger;
}
SQObjectPtr(SQFloat fFloat)
{
- _unVal.pUserPointer=NULL;
+ SQ_OBJECT_RAWINIT()
_type=OT_FLOAT;
_unVal.fFloat=fFloat;
}
SQObjectPtr(bool bBool)
{
- _unVal.pUserPointer=NULL;
+ SQ_OBJECT_RAWINIT()
_type = OT_BOOL;
_unVal.nInteger = bBool?1:0;
}
SQObjectPtr(SQUserPointer pUserPointer)
{
+ SQ_OBJECT_RAWINIT()
_type=OT_USERPOINTER;
_unVal.pUserPointer=pUserPointer;
}