New macro 'getlstr'

Accesses content and length of a 'TString'.
This commit is contained in:
Roberto Ierusalimschy
2023-08-30 11:26:16 -03:00
parent 96f7714237
commit f33cda8d6e
5 changed files with 37 additions and 22 deletions

View File

@@ -264,8 +264,7 @@ static void funcinfo (lua_Debug *ar, Closure *cl) {
else {
const Proto *p = cl->l.p;
if (p->source) {
ar->source = getstr(p->source);
ar->srclen = tsslen(p->source);
ar->source = getlstr(p->source, ar->srclen);
}
else {
ar->source = "=?";
@@ -797,8 +796,11 @@ l_noret luaG_ordererror (lua_State *L, const TValue *p1, const TValue *p2) {
const char *luaG_addinfo (lua_State *L, const char *msg, TString *src,
int line) {
char buff[LUA_IDSIZE];
if (src)
luaO_chunkid(buff, getstr(src), tsslen(src));
if (src) {
size_t idlen;
const char *id = getlstr(src, idlen);
luaO_chunkid(buff, id, idlen);
}
else { /* no source available; use "?" instead */
buff[0] = '?'; buff[1] = '\0';
}