-/* see copyright notice in squirrel.h */\r
-#ifndef _SQUSERDATA_H_\r
-#define _SQUSERDATA_H_\r
-\r
-struct SQUserData : SQDelegable\r
-{\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, SQInteger size)\r
- {\r
- SQUserData* ud = (SQUserData*)SQ_MALLOC(sizeof(SQUserData)+(size-1));\r
- new (ud) SQUserData(ss);\r
- ud->_size = size;\r
- ud->_typetag = 0;\r
- return ud;\r
- }\r
-#ifndef NO_GARBAGE_COLLECTOR\r
- void Mark(SQCollectable **chain);\r
- void Finalize(){SetDelegate(NULL);}\r
-#endif\r
- void Release() {\r
- if (_hook) _hook(_val,_size);\r
- SQInteger tsize = _size - 1;\r
- this->~SQUserData();\r
- SQ_FREE(this, sizeof(SQUserData) + tsize);\r
- }\r
- \r
- SQInteger _size;\r
- SQRELEASEHOOK _hook;\r
- SQUserPointer _typetag;\r
- SQChar _val[1];\r
-};\r
-\r
-#endif //_SQUSERDATA_H_\r
+/* see copyright notice in squirrel.h */
+#ifndef _SQUSERDATA_H_
+#define _SQUSERDATA_H_
+
+struct SQUserData : SQDelegable
+{
+ SQUserData(SQSharedState *ss){ _delegate = 0; _hook = NULL; INIT_CHAIN(); ADD_TO_CHAIN(&_ss(this)->_gc_chain, this); }
+ ~SQUserData()
+ {
+ REMOVE_FROM_CHAIN(&_ss(this)->_gc_chain, this);
+ SetDelegate(NULL);
+ }
+ static SQUserData* Create(SQSharedState *ss, SQInteger size)
+ {
+ SQUserData* ud = (SQUserData*)SQ_MALLOC(sizeof(SQUserData)+(size-1));
+ new (ud) SQUserData(ss);
+ ud->_size = size;
+ ud->_typetag = 0;
+ return ud;
+ }
+#ifndef NO_GARBAGE_COLLECTOR
+ void Mark(SQCollectable **chain);
+ void Finalize(){SetDelegate(NULL);}
+#endif
+ void Release() {
+ if (_hook) _hook(_val,_size);
+ SQInteger tsize = _size - 1;
+ this->~SQUserData();
+ SQ_FREE(this, sizeof(SQUserData) + tsize);
+ }
+
+ SQInteger _size;
+ SQRELEASEHOOK _hook;
+ SQUserPointer _typetag;
+ SQChar _val[1];
+};
+
+#endif //_SQUSERDATA_H_