Skip to content
Snippets Groups Projects
Commit ae05f11c authored by LJ Sonic's avatar LJ Sonic
Browse files

Optimise number archiving

parent 3e8fb8db
Branches
Tags
2 merge requests!985Shaders next merge,!904Optimise net-archiving of Lua strings, numbers and booleans
...@@ -732,7 +732,9 @@ enum ...@@ -732,7 +732,9 @@ enum
ARCH_NULL=0, ARCH_NULL=0,
ARCH_TRUE, ARCH_TRUE,
ARCH_FALSE, ARCH_FALSE,
ARCH_SIGNED, ARCH_INT8,
ARCH_INT16,
ARCH_INT32,
ARCH_SMALLSTRING, ARCH_SMALLSTRING,
ARCH_LARGESTRING, ARCH_LARGESTRING,
ARCH_TABLE, ARCH_TABLE,
...@@ -824,8 +826,21 @@ static UINT8 ArchiveValue(int TABLESINDEX, int myindex) ...@@ -824,8 +826,21 @@ static UINT8 ArchiveValue(int TABLESINDEX, int myindex)
case LUA_TNUMBER: case LUA_TNUMBER:
{ {
lua_Integer number = lua_tointeger(gL, myindex); lua_Integer number = lua_tointeger(gL, myindex);
WRITEUINT8(save_p, ARCH_SIGNED); if (number >= INT8_MIN && number <= INT8_MAX)
{
WRITEUINT8(save_p, ARCH_INT8);
WRITESINT8(save_p, number);
}
else if (number >= INT16_MIN && number <= INT16_MAX)
{
WRITEUINT8(save_p, ARCH_INT16);
WRITEINT16(save_p, number);
}
else
{
WRITEUINT8(save_p, ARCH_INT32);
WRITEFIXED(save_p, number); WRITEFIXED(save_p, number);
}
break; break;
} }
case LUA_TSTRING: case LUA_TSTRING:
...@@ -1193,8 +1208,13 @@ static UINT8 UnArchiveValue(int TABLESINDEX) ...@@ -1193,8 +1208,13 @@ static UINT8 UnArchiveValue(int TABLESINDEX)
case ARCH_FALSE: case ARCH_FALSE:
lua_pushboolean(gL, false); lua_pushboolean(gL, false);
break; break;
case ARCH_INT8:
lua_pushinteger(gL, READSINT8(save_p));
break;
case ARCH_INT16:
lua_pushinteger(gL, READINT16(save_p));
break; break;
case ARCH_SIGNED: case ARCH_INT32:
lua_pushinteger(gL, READFIXED(save_p)); lua_pushinteger(gL, READFIXED(save_p));
break; break;
case ARCH_SMALLSTRING: case ARCH_SMALLSTRING:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment