diff --git a/Engine/source/console/codeBlock.cpp b/Engine/source/console/codeBlock.cpp index 91b91aa55..1d1ad7593 100644 --- a/Engine/source/console/codeBlock.cpp +++ b/Engine/source/console/codeBlock.cpp @@ -412,17 +412,13 @@ bool CodeBlock::read(StringTableEntry fileName, Stream &st) { for (i = 0; i < size; i++) { - char functionNameBuffer[256]; - st.readString(functionNameBuffer); - StringTableEntry fnName = StringTable->insert(functionNameBuffer); + StringTableEntry fnName = st.readSTString(); U32 count; st.read(&count); for (U32 j = 0; j < count; j++) { - char varNameBuffer[256]; - st.readString(varNameBuffer); - StringTableEntry varName = StringTable->insert(varNameBuffer); + StringTableEntry varName = st.readSTString(); variableRegisterTable.localVarToRegister[fnName].varList.push_back(varName); } diff --git a/Engine/source/console/compiler.cpp b/Engine/source/console/compiler.cpp index 9af61bef2..1ab6e7b22 100644 --- a/Engine/source/console/compiler.cpp +++ b/Engine/source/console/compiler.cpp @@ -253,16 +253,20 @@ void CompilerLocalVariableToRegisterMappingTable::reset() void CompilerLocalVariableToRegisterMappingTable::write(Stream& stream) { - stream.write(localVarToRegister.size()); + stream.write((U32)localVarToRegister.size()); + for (const auto& pair : localVarToRegister) { StringTableEntry functionName = pair.first; stream.writeString(functionName); const auto& localVariableTableForFunction = localVarToRegister[functionName].varList; - stream.write(localVariableTableForFunction.size()); + stream.write((U32)localVariableTableForFunction.size()); + for (const StringTableEntry& varName : localVariableTableForFunction) + { stream.writeString(varName); + } } } diff --git a/Engine/source/console/console.h b/Engine/source/console/console.h index d975ccd4d..a5086488c 100644 --- a/Engine/source/console/console.h +++ b/Engine/source/console/console.h @@ -496,7 +496,8 @@ namespace Con /// 10/14/14 - jamesu - 47->48 Added opcodes to reduce reliance on strings in function calls /// 10/07/17 - JTH - 48->49 Added opcode for function pointers and revamp of interpreter /// from switch to function calls. - DSOVersion = 49, + /// 09/04/21 - JTH - 49->50 Rewrite of interpreter + DSOVersion = 50, MaxLineLength = 512, ///< Maximum length of a line of console input. MaxDataTypes = 256 ///< Maximum number of registered data types.