1
0
Fork 0
forked from len0rd/rockbox

lua inbinary strings

Allows saving of ram by reusing strings already stored in the binary
and storing a pointer instead of malloc and copy to get them inside
the lua state

Saves about 1.5K overall

Derivative of work by bogdanm
RAM optimizations: pseudo RO strings, functions in Flash
d54659b572

Change-Id: I21d6dcfa32523877efd9f70fb0f88f2a02872649
This commit is contained in:
William Wilgus 2018-11-11 18:27:19 -05:00
parent 42240f6990
commit c6fcb1cf45
10 changed files with 88 additions and 25 deletions

View file

@ -64,8 +64,8 @@ static void save (LexState *ls, int c) {
void luaX_init (lua_State *L) {
int i;
for (i=0; i<NUM_RESERVED; i++) {
TString *ts = luaS_new(L, luaX_tokens[i]);
luaS_fix(ts); /* reserved words are never collected */
/* reserved words are never collected */
TString *ts = luaS_newlloc(L, luaX_tokens[i], TSTR_INBIN | TSTR_FIXED);
lua_assert(strlen(luaX_tokens[i])+1 <= TOKEN_LEN);
ts->tsv.reserved = cast_byte(i+1); /* reserved word */
}