Fix DSOs and bump version!

This commit is contained in:
Jeff Hutchinson 2021-09-04 16:37:59 -04:00
parent 278bef8d1a
commit 478a04bea8
3 changed files with 10 additions and 9 deletions

View file

@ -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);
}

View file

@ -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);
}
}
}

View file

@ -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.