no need to store a full 'size_t' fo the size of (frequent) small strings
This commit is contained in:
22
ldump.c
22
ldump.c
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: ldump.c,v 2.22 2014/02/28 12:25:12 roberto Exp roberto $
|
** $Id: ldump.c,v 2.23 2014/02/28 16:13:01 roberto Exp roberto $
|
||||||
** save precompiled Lua chunks
|
** save precompiled Lua chunks
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@@ -60,16 +60,16 @@ static void DumpInteger(lua_Integer x, DumpState* D)
|
|||||||
|
|
||||||
static void DumpString(const TString* s, DumpState* D)
|
static void DumpString(const TString* s, DumpState* D)
|
||||||
{
|
{
|
||||||
if (s==NULL)
|
if (s==NULL) DumpByte(0,D);
|
||||||
{
|
else {
|
||||||
size_t size=0;
|
size_t size = s->tsv.len+1; /* include trailing '\0' */
|
||||||
DumpVar(size,D);
|
if (size < 0xFF) DumpByte(size,D);
|
||||||
}
|
else
|
||||||
else
|
{
|
||||||
{
|
DumpByte(0xFF,D);
|
||||||
size_t size=s->tsv.len+1; /* include trailing '\0' */
|
DumpVar(size,D);
|
||||||
DumpVar(size,D);
|
}
|
||||||
DumpBlock(getstr(s),size*sizeof(char),D);
|
DumpVector(getstr(s),size-1,D); /* no need to save '\0' */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
10
lundump.c
10
lundump.c
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: lundump.c,v 2.28 2014/02/28 12:25:12 roberto Exp roberto $
|
** $Id: lundump.c,v 2.29 2014/02/28 16:13:01 roberto Exp roberto $
|
||||||
** load precompiled Lua chunks
|
** load precompiled Lua chunks
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@@ -76,15 +76,15 @@ static lua_Integer LoadInteger(LoadState* S)
|
|||||||
|
|
||||||
static TString* LoadString(LoadState* S)
|
static TString* LoadString(LoadState* S)
|
||||||
{
|
{
|
||||||
size_t size;
|
size_t size = LoadByte(S);
|
||||||
LoadVar(S,size);
|
if (size == 0xFF) LoadVar(S,size);
|
||||||
if (size==0)
|
if (size==0)
|
||||||
return NULL;
|
return NULL;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char* s=luaZ_openspace(S->L,S->b,size);
|
char* s=luaZ_openspace(S->L,S->b,--size);
|
||||||
LoadVector(S,s,size);
|
LoadVector(S,s,size);
|
||||||
return luaS_newlstr(S->L,s,size-1); /* remove trailing '\0' */
|
return luaS_newlstr(S->L,s,size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user