void C4AulScriptEngine::Clear() { #ifndef NOAULDEBUG // stop debugger delete C4AulDebug::GetDebugger(); #endif while (Child0) if (Child0->Delete()) delete Child0; else Child0->Unreg(); // clear own stuff GlobalPropList._getPropList()->Clear(); // clear inherited C4AulScript::Clear(); // reset values warnCnt = errCnt = lineCnt = 0; // resetting name lists will reset all data lists, too // except not... GlobalNamedNames.Reset(); GlobalConstNames.Reset(); GlobalConsts.Reset(); GlobalConsts.SetNameList(&GlobalConstNames); RegisterGlobalConstant("Global", GlobalPropList); GlobalNamed.Reset(); GlobalNamed.SetNameList(&GlobalNamedNames); UserFiles.clear(); }
C4AulScriptEngine::C4AulScriptEngine(): C4PropListStaticMember(nullptr, nullptr, ::Strings.RegString("Global")), ErrorHandler(&DefaultErrorHandler) { GlobalNamedNames.Reset(); GlobalNamed.Reset(); GlobalNamed.SetNameList(&GlobalNamedNames); GlobalConstNames.Reset(); GlobalConsts.Reset(); GlobalConsts.SetNameList(&GlobalConstNames); Child0 = ChildL = nullptr; RegisterGlobalConstant("Global", C4VPropList(this)); }
C4AulScriptEngine::C4AulScriptEngine(): GlobalPropList(C4PropList::NewStatic(NULL, NULL, ::Strings.RegString("Global"))), warnCnt(0), errCnt(0), lineCnt(0) { // /me r b engine Engine = this; ScriptName.Ref(C4CFN_System); GlobalNamedNames.Reset(); GlobalNamed.Reset(); GlobalNamed.SetNameList(&GlobalNamedNames); GlobalConstNames.Reset(); GlobalConsts.Reset(); GlobalConsts.SetNameList(&GlobalConstNames); Child0 = ChildL = NULL; RegisterGlobalConstant("Global", GlobalPropList); }
void C4AulScriptEngine::Clear() { #ifndef NOAULDEBUG // stop debugger delete C4AulDebug::GetDebugger(); #endif while (Child0) if (Child0->Delete()) delete Child0; else Child0->Unreg(); // clear own stuff C4PropListStaticMember::Clear(); // reset values warnCnt = errCnt = lineCnt = 0; // resetting name lists will reset all data lists, too // except not... GlobalNamedNames.Reset(); GlobalConstNames.Reset(); GlobalConsts.Reset(); GlobalConsts.SetNameList(&GlobalConstNames); RegisterGlobalConstant("Global", C4VPropList(this)); GlobalNamed.Reset(); GlobalNamed.SetNameList(&GlobalNamedNames); delete pGlobalEffects; pGlobalEffects=nullptr; UserFiles.clear(); // Delete all global proplists made static (breaks // cyclic references). for (C4Value& value: OwnedPropLists) { C4PropList* plist = value.getPropList(); if (plist) { if (plist->Delete()) delete plist; else plist->Clear(); } } OwnedPropLists.clear(); }