# lua/ltable.h File Reference

`#include "lobject.h"`
Include dependency graph for ltable.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Defines

#define | gnode(t, i) (&(t)->node[i])
#define | gkey(n) (&(n)->i_key.nk)
#define | gval(n) (&(n)->i_val)
#define | gnext(n) ((n)->i_key.nk.next)
#define | key2tval(n) (&(n)->i_key.tvk)

## Functions

LUAI_FUNC const TValue * | luaH_getnum (Table *t, int key)
LUAI_FUNC TValue * | luaH_setnum (lua_State *L, Table *t, int key)
LUAI_FUNC const TValue * | luaH_getstr (Table *t, TString *key)
LUAI_FUNC TValue * | luaH_setstr (lua_State *L, Table *t, TString *key)
LUAI_FUNC const TValue * | luaH_get (Table *t, const TValue *key)
LUAI_FUNC TValue * | luaH_set (lua_State *L, Table *t, const TValue *key)
LUAI_FUNC Table * | luaH_new (lua_State *L, int narray, int lnhash)
LUAI_FUNC void | luaH_resizearray (lua_State *L, Table *t, int nasize)
LUAI_FUNC void | luaH_free (lua_State *L, Table *t)
LUAI_FUNC int | luaH_next (lua_State *L, Table *t, StkId key)
LUAI_FUNC int | luaH_getn (Table *t)

## Define Documentation

#define gkey | ( | n |  | ) | (&(n)->i_key.nk)

Definition at line 14 of file ltable.h.

Referenced by findindex(), getfreepos(), luaH_getnum(), luaH_getstr(), newkey(), removeentry(), setnodevector(), and traversetable().

#define gnext | ( | n |  | ) | ((n)->i_key.nk.next)

Definition at line 16 of file ltable.h.

Referenced by findindex(), luaH_get(), luaH_getnum(), luaH_getstr(), newkey(), and setnodevector().

#define gnode | ( | t,
|  | i |  | ) | (&(t)->node[i])

Definition at line 13 of file ltable.h.

Referenced by cleartable(), findindex(), hashnum(), luaH_next(), setnodevector(), and traversetable().

#define gval | ( | n |  | ) | (&(n)->i_val)

Definition at line 15 of file ltable.h.

Referenced by cleartable(), luaH_get(), luaH_getnum(), luaH_getstr(), luaH_next(), newkey(), numusehash(), removeentry(), resize(), setnodevector(), and traversetable().

#define key2tval | ( | n |  | ) | (&(n)->i_key.tvk)

Definition at line 18 of file ltable.h.

Referenced by cleartable(), findindex(), luaH_get(), luaH_next(), newkey(), numusehash(), and resize().

## Function Documentation

LUAI_FUNC void luaH_free | ( | lua_State * | L,
|  | Table * | t |
| ) |  |  |

Definition at line 374 of file ltable.c.

References Table::array, dummynode, luaM_free, luaM_freearray, Table::node, Table::sizearray, and sizenode.

Referenced by freeobj().

LUAI_FUNC const TValue* luaH_get | ( | Table * | t,
|  | const TValue * | key |
| ) |  |  |

Definition at line 469 of file ltable.c.

References cast_num, gnext, gval, key2tval, luaH_getnum(), luaH_getstr(), luaO_nilobject, luaO_rawequalObj(), mainposition(), nvalue, rawtsvalue, and ttype.

Referenced by lua_rawget(), luaH_set(), and luaV_gettable().

LUAI_FUNC int luaH_getn | ( | Table * | t | ) |

Definition at line 560 of file ltable.c.

References Table::array, dummynode, Table::node, Table::sizearray, ttisnil, and unbound_search().

Referenced by lua_objlen(), and luaV_execute().

LUAI_FUNC const TValue* luaH_getnum | ( | Table * | t,
|  | int | key |
| ) |  |  |

Definition at line 435 of file ltable.c.

References Table::array, cast, cast_num, gkey, gnext, gval, hashnum(), luaO_nilobject, nvalue, Table::sizearray, and ttisnumber.

Referenced by lua_rawgeti(), luaH_get(), luaH_setnum(), and unbound_search().

LUAI_FUNC const TValue* luaH_getstr | ( | Table * | t,
|  | TString * | key |
| ) |  |  |

Definition at line 455 of file ltable.c.

References gkey, gnext, gval, hashstr, luaO_nilobject, rawtsvalue, and ttisstring.

Referenced by luaH_get(), luaH_setstr(), luaT_gettm(), and luaT_gettmbyobj().

LUAI_FUNC Table* luaH_new | ( | lua_State * | L,
|  | int | narray,
|  | int | lnhash |
| ) |  |  |

Definition at line 358 of file ltable.c.

References Table::array, cast, cast_byte, dummynode, Table::flags, Table::lsizenode, luaC_link(), luaM_new, Table::metatable, Table::node, obj2gco, setarrayvector(), setnodevector(), and Table::sizearray.

Referenced by adjust_varargs(), collectvalidlines(), f_luaopen(), lua_createtable(), luaV_execute(), and open_func().

LUAI_FUNC int luaH_next | ( | lua_State * | L,
|  | Table * | t,
|  | StkId | key |
| ) |  |  |

Definition at line 162 of file ltable.c.

References Table::array, cast_num, findindex(), gnode, gval, key2tval, setnvalue, setobj2s, Table::sizearray, sizenode, and ttisnil.

Referenced by lua_next().

LUAI_FUNC void luaH_resizearray | ( | lua_State * | L,
|  | Table * | t,
|  | int | nasize |
| ) |  |  |

Definition at line 327 of file ltable.c.

References dummynode, Table::node, resize(), and sizenode.

Referenced by luaV_execute().

LUAI_FUNC TValue* luaH_set | ( | lua_State * | L,
|  | Table * | t,
|  | const TValue * | key |
| ) |  |  |

Definition at line 494 of file ltable.c.

References cast, Table::flags, luaG_runerror(), luaH_get(), luaO_nilobject, newkey(), nvalue, ttisnil, and ttisnumber.

Referenced by addk(), lua_rawset(), luaV_settable(), newkey(), and resize().

LUAI_FUNC TValue* luaH_setnum | ( | lua_State * | L,
|  | Table * | t,
|  | int | key |
| ) |  |  |

Definition at line 508 of file ltable.c.

References cast, cast_num, luaH_getnum(), luaO_nilobject, newkey(), and setnvalue.

Referenced by adjust_varargs(), collectvalidlines(), lua_rawseti(), luaV_execute(), and resize().

LUAI_FUNC TValue* luaH_setstr | ( | lua_State * | L,
|  | Table * | t,
|  | TString * | key |
| ) |  |  |

Definition at line 520 of file ltable.c.

References cast, luaH_getstr(), luaO_nilobject, newkey(), and setsvalue.

Referenced by adjust_varargs(), and luaX_newstring().