* Update squirrel to 2.2.3
[supertux.git] / src / squirrel / squirrel / sqobject.h
index 271bf41..29adc3b 100644 (file)
@@ -117,7 +117,7 @@ struct SQObjectPtr;
 #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
@@ -130,23 +130,27 @@ struct SQObjectPtr : public SQObject
 {
        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);
@@ -154,6 +158,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQClass *pClass)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_CLASS;
                _unVal.pClass=pClass;
                assert(_unVal.pClass);
@@ -161,6 +166,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQInstance *pInstance)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_INSTANCE;
                _unVal.pInstance=pInstance;
                assert(_unVal.pInstance);
@@ -168,6 +174,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQArray *pArray)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_ARRAY;
                _unVal.pArray=pArray;
                assert(_unVal.pArray);
@@ -175,6 +182,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQClosure *pClosure)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_CLOSURE;
                _unVal.pClosure=pClosure;
                assert(_unVal.pClosure);
@@ -182,6 +190,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQGenerator *pGenerator)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_GENERATOR;
                _unVal.pGenerator=pGenerator;
                assert(_unVal.pGenerator);
@@ -189,6 +198,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQNativeClosure *pNativeClosure)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_NATIVECLOSURE;
                _unVal.pNativeClosure=pNativeClosure;
                assert(_unVal.pNativeClosure);
@@ -196,6 +206,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQString *pString)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_STRING;
                _unVal.pString=pString;
                assert(_unVal.pString);
@@ -203,6 +214,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQUserData *pUserData)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_USERDATA;
                _unVal.pUserData=pUserData;
                assert(_unVal.pUserData);
@@ -210,6 +222,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQVM *pThread)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_THREAD;
                _unVal.pThread=pThread;
                assert(_unVal.pThread);
@@ -217,6 +230,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQWeakRef *pWeakRef)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_WEAKREF;
                _unVal.pWeakRef=pWeakRef;
                assert(_unVal.pWeakRef);
@@ -224,6 +238,7 @@ struct SQObjectPtr : public SQObject
        }
        SQObjectPtr(SQFunctionProto *pFunctionProto)
        {
+               SQ_OBJECT_RAWINIT()
                _type=OT_FUNCPROTO;
                _unVal.pFunctionProto=pFunctionProto;
                assert(_unVal.pFunctionProto);
@@ -231,24 +246,25 @@ struct SQObjectPtr : public SQObject
        }
        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;
        }