-/* see copyright notice in squirrel.h */
-#ifndef _SQSTATE_H_
-#define _SQSTATE_H_
-
-#include "squtils.h"
-#include "sqobject.h"
-struct SQString;
-struct SQTable;
-//max number of character for a printed number
-#define NUMBER_MAX_CHAR 50
-
-struct StringTable
-{
- StringTable();
- ~StringTable();
- //return a string obj if exists
- //so when there is a table query, if the string doesn't exists in the global state
- //it cannot be in a table so the result will be always null
- //SQString *get(const SQChar *news);
- SQString *Add(const SQChar *,int len);
- void Remove(SQString *);
-private:
- void Resize(int size);
- void AllocNodes(int size);
- SQString **_strings;
- unsigned int _numofslots;
- unsigned int _slotused;
-};
-
-#define ADD_STRING(ss,str,len) ss->_stringtable->Add(str,len)
-#define REMOVE_STRING(ss,bstr) ss->_stringtable->Remove(bstr)
-
-struct SQObjectPtr;
-
-struct SQSharedState
-{
- SQSharedState();
- ~SQSharedState();
- void Init();
-public:
- SQChar* GetScratchPad(int size);
- SQInteger GetMetaMethodIdxByName(const SQObjectPtr &name);
-#ifndef NO_GARBAGE_COLLECTOR
- int CollectGarbage(SQVM *vm);
- static void MarkObject(SQObjectPtr &o,SQCollectable **chain);
-#endif
- SQObjectPtrVec *_metamethods;
- SQObjectPtr _metamethodsmap;
- SQObjectPtrVec *_systemstrings;
- SQObjectPtrVec *_types;
- StringTable *_stringtable;
- SQObjectPtr _refs_table;
- SQObjectPtr _registry;
- SQObjectPtr _constructoridx;
-#ifndef NO_GARBAGE_COLLECTOR
- SQCollectable *_gc_chain;
-#endif
- SQObjectPtr _root_vm;
- SQObjectPtr _table_default_delegate;
- static SQRegFunction _table_default_delegate_funcz[];
- SQObjectPtr _array_default_delegate;
- static SQRegFunction _array_default_delegate_funcz[];
- SQObjectPtr _string_default_delegate;
- static SQRegFunction _string_default_delegate_funcz[];
- SQObjectPtr _number_default_delegate;
- static SQRegFunction _number_default_delegate_funcz[];
- SQObjectPtr _generator_default_delegate;
- static SQRegFunction _generator_default_delegate_funcz[];
- SQObjectPtr _closure_default_delegate;
- static SQRegFunction _closure_default_delegate_funcz[];
- SQObjectPtr _thread_default_delegate;
- static SQRegFunction _thread_default_delegate_funcz[];
- SQObjectPtr _class_default_delegate;
- static SQRegFunction _class_default_delegate_funcz[];
- SQObjectPtr _instance_default_delegate;
- static SQRegFunction _instance_default_delegate_funcz[];
-
- SQCOMPILERERROR _compilererrorhandler;
- SQPRINTFUNCTION _printfunc;
- bool _debuginfo;
-private:
- SQChar *_scratchpad;
- int _scratchpadsize;
-};
-
-#define _sp(s) (_sharedstate->GetScratchPad(s))
-#define _spval (_sharedstate->GetScratchPad(-1))
-
-#define _table_ddel _table(_sharedstate->_table_default_delegate)
-#define _array_ddel _table(_sharedstate->_array_default_delegate)
-#define _string_ddel _table(_sharedstate->_string_default_delegate)
-#define _number_ddel _table(_sharedstate->_number_default_delegate)
-#define _generator_ddel _table(_sharedstate->_generator_default_delegate)
-#define _closure_ddel _table(_sharedstate->_closure_default_delegate)
-#define _thread_ddel _table(_sharedstate->_thread_default_delegate)
-#define _class_ddel _table(_sharedstate->_class_default_delegate)
-#define _instance_ddel _table(_sharedstate->_instance_default_delegate)
-
-#ifdef SQUNICODE //rsl REAL STRING LEN
-#define rsl(l) ((l)<<1)
-#else
-#define rsl(l) (l)
-#endif
-
-extern SQObjectPtr _null_;
-extern SQObjectPtr _true_;
-extern SQObjectPtr _false_;
-extern SQObjectPtr _one_;
-extern SQObjectPtr _minusone_;
-
-bool CompileTypemask(SQIntVec &res,const SQChar *typemask);
-
-void *sq_vm_malloc(unsigned int size);
-void *sq_vm_realloc(void *p,unsigned int oldsize,unsigned int size);
-void sq_vm_free(void *p,unsigned int size);
-#endif //_SQSTATE_H_
+/* see copyright notice in squirrel.h */\r
+#ifndef _SQSTATE_H_\r
+#define _SQSTATE_H_\r
+\r
+#include "squtils.h"\r
+#include "sqobject.h"\r
+struct SQString;\r
+struct SQTable;\r
+//max number of character for a printed number\r
+#define NUMBER_MAX_CHAR 50\r
+\r
+struct StringTable\r
+{\r
+ StringTable();\r
+ ~StringTable();\r
+ //return a string obj if exists\r
+ //so when there is a table query, if the string doesn't exists in the global state\r
+ //it cannot be in a table so the result will be always null\r
+ //SQString *get(const SQChar *news);\r
+ SQString *Add(const SQChar *,SQInteger len);\r
+ void Remove(SQString *);\r
+private:\r
+ void Resize(SQInteger size);\r
+ void AllocNodes(SQInteger size);\r
+ SQString **_strings;\r
+ SQUnsignedInteger _numofslots;\r
+ SQUnsignedInteger _slotused;\r
+};\r
+\r
+#define ADD_STRING(ss,str,len) ss->_stringtable->Add(str,len)\r
+#define REMOVE_STRING(ss,bstr) ss->_stringtable->Remove(bstr)\r
+\r
+struct SQObjectPtr;\r
+\r
+struct SQSharedState\r
+{\r
+ SQSharedState();\r
+ ~SQSharedState();\r
+ void Init();\r
+public:\r
+ SQChar* GetScratchPad(SQInteger size);\r
+ SQInteger GetMetaMethodIdxByName(const SQObjectPtr &name);\r
+#ifndef NO_GARBAGE_COLLECTOR\r
+ SQInteger CollectGarbage(SQVM *vm); \r
+ static void MarkObject(SQObjectPtr &o,SQCollectable **chain);\r
+#endif\r
+ SQObjectPtrVec *_metamethods;\r
+ SQObjectPtr _metamethodsmap;\r
+ SQObjectPtrVec *_systemstrings;\r
+ SQObjectPtrVec *_types;\r
+ StringTable *_stringtable;\r
+ SQObjectPtr _refs_table;\r
+ SQObjectPtr _registry;\r
+ SQObjectPtr _constructoridx;\r
+#ifndef NO_GARBAGE_COLLECTOR\r
+ SQCollectable *_gc_chain;\r
+#endif\r
+ SQObjectPtr _root_vm;\r
+ SQObjectPtr _table_default_delegate;\r
+ static SQRegFunction _table_default_delegate_funcz[];\r
+ SQObjectPtr _array_default_delegate;\r
+ static SQRegFunction _array_default_delegate_funcz[];\r
+ SQObjectPtr _string_default_delegate;\r
+ static SQRegFunction _string_default_delegate_funcz[];\r
+ SQObjectPtr _number_default_delegate;\r
+ static SQRegFunction _number_default_delegate_funcz[];\r
+ SQObjectPtr _generator_default_delegate;\r
+ static SQRegFunction _generator_default_delegate_funcz[];\r
+ SQObjectPtr _closure_default_delegate;\r
+ static SQRegFunction _closure_default_delegate_funcz[];\r
+ SQObjectPtr _thread_default_delegate;\r
+ static SQRegFunction _thread_default_delegate_funcz[];\r
+ SQObjectPtr _class_default_delegate;\r
+ static SQRegFunction _class_default_delegate_funcz[];\r
+ SQObjectPtr _instance_default_delegate;\r
+ static SQRegFunction _instance_default_delegate_funcz[];\r
+ SQObjectPtr _weakref_default_delegate;\r
+ static SQRegFunction _weakref_default_delegate_funcz[];\r
+ \r
+ SQCOMPILERERROR _compilererrorhandler;\r
+ SQPRINTFUNCTION _printfunc;\r
+ bool _debuginfo;\r
+private:\r
+ SQChar *_scratchpad;\r
+ SQInteger _scratchpadsize;\r
+};\r
+\r
+#define _sp(s) (_sharedstate->GetScratchPad(s))\r
+#define _spval (_sharedstate->GetScratchPad(-1))\r
+\r
+#define _table_ddel _table(_sharedstate->_table_default_delegate) \r
+#define _array_ddel _table(_sharedstate->_array_default_delegate) \r
+#define _string_ddel _table(_sharedstate->_string_default_delegate) \r
+#define _number_ddel _table(_sharedstate->_number_default_delegate) \r
+#define _generator_ddel _table(_sharedstate->_generator_default_delegate) \r
+#define _closure_ddel _table(_sharedstate->_closure_default_delegate) \r
+#define _thread_ddel _table(_sharedstate->_thread_default_delegate) \r
+#define _class_ddel _table(_sharedstate->_class_default_delegate) \r
+#define _instance_ddel _table(_sharedstate->_instance_default_delegate) \r
+#define _weakref_ddel _table(_sharedstate->_weakref_default_delegate) \r
+\r
+#ifdef SQUNICODE //rsl REAL STRING LEN\r
+#define rsl(l) ((l)<<1)\r
+#else\r
+#define rsl(l) (l)\r
+#endif\r
+\r
+extern SQObjectPtr _null_;\r
+extern SQObjectPtr _true_;\r
+extern SQObjectPtr _false_;\r
+extern SQObjectPtr _one_;\r
+extern SQObjectPtr _minusone_;\r
+\r
+bool CompileTypemask(SQIntVec &res,const SQChar *typemask);\r
+\r
+void *sq_vm_malloc(SQUnsignedInteger size);\r
+void *sq_vm_realloc(void *p,SQUnsignedInteger oldsize,SQUnsignedInteger size);\r
+void sq_vm_free(void *p,SQUnsignedInteger size);\r
+#endif //_SQSTATE_H_\r