\r
struct SQStringTable\r
{\r
- SQStringTable(SQSharedState*ss);\r
+ SQStringTable();\r
~SQStringTable();\r
SQString *Add(const SQChar *,SQInteger len);\r
void Remove(SQString *);\r
SQString **_strings;\r
SQUnsignedInteger _numofslots;\r
SQUnsignedInteger _slotused;\r
- SQSharedState *_sharedstate;\r
};\r
\r
struct RefTable {\r
~RefTable();\r
void AddRef(SQObject &obj);\r
SQBool Release(SQObject &obj);\r
- SQUnsignedInteger GetRefCount(SQObject &obj);\r
#ifndef NO_GARBAGE_COLLECTOR\r
void Mark(SQCollectable **chain);\r
#endif\r
SQChar* GetScratchPad(SQInteger size);\r
SQInteger GetMetaMethodIdxByName(const SQObjectPtr &name);\r
#ifndef NO_GARBAGE_COLLECTOR\r
- SQInteger CollectGarbage(SQVM *vm);\r
- void RunMark(SQVM *vm,SQCollectable **tchain);\r
- SQInteger ResurrectUnreachable(SQVM *vm);\r
+ SQInteger CollectGarbage(SQVM *vm); \r
static void MarkObject(SQObjectPtr &o,SQCollectable **chain);\r
#endif\r
SQObjectPtrVec *_metamethods;\r
\r
SQCOMPILERERROR _compilererrorhandler;\r
SQPRINTFUNCTION _printfunc;\r
- SQPRINTFUNCTION _errorfunc;\r
bool _debuginfo;\r
bool _notifyallexceptions;\r
private:\r
#define rsl(l) (l)\r
#endif\r
\r
-//extern SQObjectPtr _null_;\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
-\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