Towards external strings

Long strings have a pointer to string contents.
This commit is contained in:
Roberto Ierusalimschy
2023-11-08 13:24:38 -03:00
parent b8a9d14032
commit 7f4906f565
4 changed files with 36 additions and 22 deletions

4
lgc.c
View File

@@ -808,12 +808,12 @@ static void freeobj (lua_State *L, GCObject *o) {
case LUA_VSHRSTR: {
TString *ts = gco2ts(o);
luaS_remove(L, ts); /* remove it from hash table */
luaM_freemem(L, ts, sizelstring(ts->shrlen));
luaM_freemem(L, ts, sizestrshr(ts->shrlen));
break;
}
case LUA_VLNGSTR: {
TString *ts = gco2ts(o);
luaM_freemem(L, ts, sizelstring(ts->u.lnglen));
luaM_freemem(L, ts, sizestrlng(ts->u.lnglen));
break;
}
default: lua_assert(0);