/** * Is the operand a reference to a short string constant? */ static int isshortstr(FuncState *fs, int kk) { if (ISK(kk)) { Proto *f = fs->f; kk = INDEXK(kk); lua_assert(kk >= 0 && kk < f->sizek); return ttisshrstring(&f->k[kk]); } return 0; }
/* * search function for short strings */ const Tvalue *kp_table_getstr(Table *t, Tstring *key) { Node *n = hashstr(t, key); do { /* check whether `key' is somewhere in the chain */ if (ttisshrstring(gkey(n)) && eqshrstr(rawtsvalue(gkey(n)), key)) return gval(n); /* that's it */ else n = gnext(n); } while (n); return ktap_nilobject; }