diff --git a/src/scripting/codegeneration/codegen.cpp b/src/scripting/codegeneration/codegen.cpp index 814c47717..d3a5e0e8c 100644 --- a/src/scripting/codegeneration/codegen.cpp +++ b/src/scripting/codegeneration/codegen.cpp @@ -213,18 +213,17 @@ void ExpEmit::Reuse(VMFunctionBuilder *build) // it and install it a local symbol table. // //========================================================================== -static PSymbolTable Builtins; static PSymbol *FindBuiltinFunction(FName funcname, VMNativeFunction::NativeCallType func) { - PSymbol *sym = Builtins.FindSymbol(funcname, false); + PSymbol *sym = GlobalSymbols.FindSymbol(funcname, false); if (sym == nullptr) { PSymbolVMFunction *symfunc = new PSymbolVMFunction(funcname); VMNativeFunction *calldec = new VMNativeFunction(func, funcname); symfunc->Function = calldec; sym = symfunc; - Builtins.AddSymbol(sym); + GlobalSymbols.AddSymbol(sym); } return sym; } diff --git a/src/scripting/vm/vmbuilder.cpp b/src/scripting/vm/vmbuilder.cpp index bb6b626e7..1544ca4a6 100644 --- a/src/scripting/vm/vmbuilder.cpp +++ b/src/scripting/vm/vmbuilder.cpp @@ -774,5 +774,5 @@ void FFunctionBuildList::Build() fclose(dump); } FScriptPosition::StrictErrors = false; - + mItems.Clear(); } \ No newline at end of file diff --git a/src/scripting/zscript/zcc_compile.cpp b/src/scripting/zscript/zcc_compile.cpp index 889cdb5fd..49711afb2 100644 --- a/src/scripting/zscript/zcc_compile.cpp +++ b/src/scripting/zscript/zcc_compile.cpp @@ -51,8 +51,6 @@ #include "codegeneration/codegen.h" #include "vmbuilder.h" -#define DEFINING_CONST ((PSymbolConst *)(void *)1) - //========================================================================== // // ZCCCompiler :: ProcessClass @@ -714,10 +712,8 @@ bool ZCCCompiler::CompileConstant(ZCC_ConstantDef *def, PSymbolTable *sym) { assert(def->Symbol == nullptr); - def->Symbol = DEFINING_CONST; // avoid recursion ZCC_Expression *val = Simplify(def->Value, sym, true); def->Value = val; - if (def->Symbol == DEFINING_CONST) def->Symbol = nullptr; return (val->NodeType == AST_ExprConstant); } diff --git a/src/scripting/zscript/zcc_parser.cpp b/src/scripting/zscript/zcc_parser.cpp index 26fdeec43..1f0800302 100644 --- a/src/scripting/zscript/zcc_parser.cpp +++ b/src/scripting/zscript/zcc_parser.cpp @@ -199,9 +199,6 @@ static void InitTokenMap() TOKENDEF (TK_CanRaise, ZCC_CANRAISE); TOKENDEF (TK_Light, ZCC_LIGHT); TOKENDEF (TK_Extend, ZCC_EXTEND); - - ZCC_InitOperators(); - ZCC_InitConversions(); } #undef TOKENDEF #undef TOKENDEF2 @@ -293,11 +290,6 @@ parse_end: static void DoParse(int lumpnum) { - if (TokenMap.CountUsed() == 0) - { - InitTokenMap(); - } - FScanner sc; void *parser; ZCCToken value; @@ -400,6 +392,13 @@ static void DoParse(int lumpnum) void ParseScripts() { + if (TokenMap.CountUsed() == 0) + { + InitTokenMap(); + } + ZCC_InitOperators(); + ZCC_InitConversions(); + int lump, lastlump = 0; FScriptPosition::ResetErrorCounter(); while ((lump = Wads.FindLump("ZSCRIPT", &lastlump)) != -1)