# lua/lstring.h File Reference

`#include "lgc.h"`
`#include "lobject.h"`
`#include "lstate.h"`

Include dependency graph for lstring.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Defines

#define | sizestring(s) (sizeof(union TString)+((s)->len+1)*sizeof(char))
#define | sizeudata(u) (sizeof(union Udata)+(u)->len)
#define | luaS_new(L, s) (luaS_newlstr(L, s, strlen(s)))
#define | luaS_newliteral(L, s)
#define | luaS_fix(s) l_setbit((s)->tsv.marked, FIXEDBIT)

## Functions

void | luaS_resize (lua_State *L, int newsize)
Udata * | luaS_newudata (lua_State *L, size_t s, Table *e)
TString * | luaS_newlstr (lua_State *L, const char *str, size_t l)

## Define Documentation

#define luaS_fix | ( | s |  | ) | l_setbit((s)->tsv.marked, FIXEDBIT)

Definition at line 24 of file lstring.h.

Referenced by f_luaopen(), luaT_init(), and luaX_init().

#define luaS_new | ( | L,
|  | s |  | ) | (luaS_newlstr(L, s, strlen(s)))

Definition at line 20 of file lstring.h.

Referenced by lua_getfield(), lua_setfield(), luaT_init(), luaV_tostring(), luaX_init(), luaY_parser(), pushstr(), and resume_error().

#define luaS_newliteral | ( | L,
|  | s |  | ) |

Value:

    (luaS_newlstr(L, "" s, \
                                     (sizeof(s)/sizeof(char))-1))

Definition at line 21 of file lstring.h.

Referenced by adjust_varargs(), f_luaopen(), luaD_seterrorobj(), and luaU_undump().

#define sizestring | ( | s |  | ) | (sizeof(union TString)+((s)->len+1)*sizeof(char))

Definition at line 16 of file lstring.h.

Referenced by freeobj().

#define sizeudata | ( | u |  | ) | (sizeof(union Udata)+(u)->len)

Definition at line 18 of file lstring.h.

Referenced by freeobj(), and luaC_separateudata().

## Function Documentation

TString* luaS_newlstr | ( | lua_State * | L,
|  | const char * | str,
|  | size_t | l |
| ) |  |  |

Definition at line 75 of file lstring.c.

References cast, changewhite, G, GCObject::gch, getstr, isdead, TString::len, lmod, newlstr(), GCheader::next, rawgco2ts, and TString::tsv.

Referenced by LoadString(), lua_concat(), lua_pushlstring(), luaO_pushvfstring(), luaV_concat(), and luaX_newstring().

Udata* luaS_newudata | ( | lua_State * | L,
|  | size_t | s,
|  | Table * | e |
| ) |  |  |

Definition at line 96 of file lstring.c.

References cast, Udata::env, G, Udata::len, luaC_white, luaM_malloc, luaM_toobig(), Udata::marked, MAX_SIZET, Udata::metatable, Udata::next, obj2gco, Udata::tt, and Udata::uv.

Referenced by lua_newuserdata().

void luaS_resize | ( | lua_State * | L,
|  | int | newsize |
| ) |  |  |

Definition at line 22 of file lstring.c.

References cast_int, G, GCObject::gch, gco2ts, GCSsweepstring, stringtable::hash, lmod, lua_assert, luaM_freearray, luaM_newvector, GCheader::next, next, and stringtable::size.

Referenced by checkSizes(), f_luaopen(), and newlstr().