/* checks whether short string exists and reuses it or creates a new one  */
static TString* internshrstr(lua_State *L, const char *str, size_t l)
/* checks whether short string exists and reuses it or creates a new one  */
static TString* internshrstr(lua_State *L, const char *str, size_t l)
{
    TString *ts = rawgco2ts(o);
    if (h == ts->tsv.hash &&
        l == ts->tsv.len &&
        (memcmp(str, getstr(ts), l * sizeof(char)) == 0)) {
      if (isdead(G(L), o))
        changewhite(o);
      return ts;
    }
  }
  return newshrstr(L, str, l, h);
}