Update SQUIRREL to 2.2.5
[supertux.git] / external / squirrel / squirrel / sqstate.h
old mode 100644 (file)
new mode 100755 (executable)
index cb38fd5..e06da7a
-/*     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();
-       SQString *Add(const SQChar *,SQInteger len);
-       void Remove(SQString *);
-private:
-       void Resize(SQInteger size);
-       void AllocNodes(SQInteger size);
-       SQString **_strings;
-       SQUnsignedInteger _numofslots;
-       SQUnsignedInteger _slotused;
-};
-
-struct RefTable {
-       struct RefNode {
-               SQObjectPtr obj;
-               SQUnsignedInteger refs;
-               struct RefNode *next;
-       };
-       RefTable();
-       ~RefTable();
-       void AddRef(SQObject &obj);
-       SQBool Release(SQObject &obj);
-#ifndef NO_GARBAGE_COLLECTOR
-       void Mark(SQCollectable **chain);
-#endif
-       void Finalize();
-private:
-       RefNode *Get(SQObject &obj,SQHash &mainpos,RefNode **prev,bool add);
-       RefNode *Add(SQHash mainpos,SQObject &obj);
-       void Resize(SQUnsignedInteger size);
-       void AllocNodes(SQUnsignedInteger size);
-       SQUnsignedInteger _numofslots;
-       SQUnsignedInteger _slotused;
-       RefNode *_nodes;
-       RefNode *_freelist;
-       RefNode **_buckets;
-};
-
-#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(SQInteger size);
-       SQInteger GetMetaMethodIdxByName(const SQObjectPtr &name);
-#ifndef NO_GARBAGE_COLLECTOR
-       SQInteger CollectGarbage(SQVM *vm); 
-       static void MarkObject(SQObjectPtr &o,SQCollectable **chain);
-#endif
-       SQObjectPtrVec *_metamethods;
-       SQObjectPtr _metamethodsmap;
-       SQObjectPtrVec *_systemstrings;
-       SQObjectPtrVec *_types;
-       StringTable *_stringtable;
-       RefTable _refs_table;
-       SQObjectPtr _registry;
-       SQObjectPtr _consts;
-       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[];
-       SQObjectPtr _weakref_default_delegate;
-       static SQRegFunction _weakref_default_delegate_funcz[];
-       
-       SQCOMPILERERROR _compilererrorhandler;
-       SQPRINTFUNCTION _printfunc;
-       bool _debuginfo;
-       bool _notifyallexceptions;
-private:
-       SQChar *_scratchpad;
-       SQInteger _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) 
-#define _weakref_ddel  _table(_sharedstate->_weakref_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);
-#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 SQStringTable\r
+{\r
+       SQStringTable();\r
+       ~SQStringTable();\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
+struct RefTable {\r
+       struct RefNode {\r
+               SQObjectPtr obj;\r
+               SQUnsignedInteger refs;\r
+               struct RefNode *next;\r
+       };\r
+       RefTable();\r
+       ~RefTable();\r
+       void AddRef(SQObject &obj);\r
+       SQBool Release(SQObject &obj);\r
+#ifndef NO_GARBAGE_COLLECTOR\r
+       void Mark(SQCollectable **chain);\r
+#endif\r
+       void Finalize();\r
+private:\r
+       RefNode *Get(SQObject &obj,SQHash &mainpos,RefNode **prev,bool add);\r
+       RefNode *Add(SQHash mainpos,SQObject &obj);\r
+       void Resize(SQUnsignedInteger size);\r
+       void AllocNodes(SQUnsignedInteger size);\r
+       SQUnsignedInteger _numofslots;\r
+       SQUnsignedInteger _slotused;\r
+       RefNode *_nodes;\r
+       RefNode *_freelist;\r
+       RefNode **_buckets;\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
+       SQStringTable *_stringtable;\r
+       RefTable _refs_table;\r
+       SQObjectPtr _registry;\r
+       SQObjectPtr _consts;\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
+       bool _notifyallexceptions;\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