mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-14 02:27:39 -04:00
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:
parent
42240f6990
commit
c6fcb1cf45
10 changed files with 88 additions and 25 deletions
|
@ -201,13 +201,14 @@ typedef union TString {
|
|||
struct {
|
||||
CommonHeader;
|
||||
lu_byte reserved;
|
||||
lu_byte type;
|
||||
unsigned int hash;
|
||||
size_t len;
|
||||
} tsv;
|
||||
} TString;
|
||||
|
||||
|
||||
#define getstr(ts) cast(const char *, (ts) + 1)
|
||||
#define getstr(ts) (luaO_getstring(ts)) /* ROCKLUA ADDED */
|
||||
#define svalue(o) getstr(rawtsvalue(o))
|
||||
|
||||
|
||||
|
@ -371,6 +372,7 @@ LUAI_FUNC int luaO_int2fb (unsigned int x);
|
|||
LUAI_FUNC int luaO_fb2int (int x);
|
||||
LUAI_FUNC int luaO_rawequalObj (const TValue *t1, const TValue *t2);
|
||||
LUAI_FUNC int luaO_str2d (const char *s, lua_Number *result);
|
||||
LUAI_FUNC const char *luaO_getstring(const TString * ts); /* ROCKLUA ADDED */
|
||||
LUAI_FUNC const char *luaO_pushvfstring (lua_State *L, const char *fmt,
|
||||
va_list argp);
|
||||
LUAI_FUNC const char *luaO_pushfstring (lua_State *L, const char *fmt, ...);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue