diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2015-01-16 14:54:37 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2015-01-16 14:54:37 -0200 |
commit | 7e2015a46df7976bddee313b994742e49e420714 (patch) | |
tree | 0b2db30f1214a478ccb3664d165c8a431f0d5850 /lapi.c | |
parent | 5b01cb39b5ec36c544152351c35c43149d9bbfec (diff) | |
download | lua-7e2015a46df7976bddee313b994742e49e420714.tar.gz lua-7e2015a46df7976bddee313b994742e49e420714.tar.bz2 lua-7e2015a46df7976bddee313b994742e49e420714.zip |
size of short strings stored in a single byte, to reduce the size
of struct 'TString'
Diffstat (limited to 'lapi.c')
-rw-r--r-- | lapi.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lapi.c,v 2.243 2014/11/12 13:28:54 roberto Exp roberto $ | 2 | ** $Id: lapi.c,v 2.244 2014/12/26 14:43:45 roberto Exp roberto $ |
3 | ** Lua API | 3 | ** Lua API |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -382,15 +382,17 @@ LUA_API const char *lua_tolstring (lua_State *L, int idx, size_t *len) { | |||
382 | luaO_tostring(L, o); | 382 | luaO_tostring(L, o); |
383 | lua_unlock(L); | 383 | lua_unlock(L); |
384 | } | 384 | } |
385 | if (len != NULL) *len = tsvalue(o)->len; | 385 | if (len != NULL) |
386 | *len = vslen(o); | ||
386 | return svalue(o); | 387 | return svalue(o); |
387 | } | 388 | } |
388 | 389 | ||
389 | 390 | ||
390 | LUA_API size_t lua_rawlen (lua_State *L, int idx) { | 391 | LUA_API size_t lua_rawlen (lua_State *L, int idx) { |
391 | StkId o = index2addr(L, idx); | 392 | StkId o = index2addr(L, idx); |
392 | switch (ttnov(o)) { | 393 | switch (ttype(o)) { |
393 | case LUA_TSTRING: return tsvalue(o)->len; | 394 | case LUA_TSHRSTR: return tsvalue(o)->shrlen; |
395 | case LUA_TLNGSTR: return tsvalue(o)->u.lnglen; | ||
394 | case LUA_TUSERDATA: return uvalue(o)->len; | 396 | case LUA_TUSERDATA: return uvalue(o)->len; |
395 | case LUA_TTABLE: return luaH_getn(hvalue(o)); | 397 | case LUA_TTABLE: return luaH_getn(hvalue(o)); |
396 | default: return 0; | 398 | default: return 0; |