1dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com/*
2dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com** $Id: ltable.h,v 2.16 2011/08/17 20:26:47 roberto Exp $
3dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com** Lua tables (hash)
4dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com** See Copyright Notice in lua.h
5dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com*/
6dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
7dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#ifndef ltable_h
8dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#define ltable_h
9dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
10dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#include "lobject.h"
11dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
12dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
13dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#define gnode(t,i)	(&(t)->node[i])
14dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#define gkey(n)		(&(n)->i_key.tvk)
15dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#define gval(n)		(&(n)->i_val)
16dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#define gnext(n)	((n)->i_key.nk.next)
17dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
18dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#define invalidateTMcache(t)	((t)->flags = 0)
19dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
20dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
21dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC const TValue *luaH_getint (Table *t, int key);
22dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC void luaH_setint (lua_State *L, Table *t, int key, TValue *value);
23dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC const TValue *luaH_getstr (Table *t, TString *key);
24dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC const TValue *luaH_get (Table *t, const TValue *key);
25dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC TValue *luaH_newkey (lua_State *L, Table *t, const TValue *key);
26dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC TValue *luaH_set (lua_State *L, Table *t, const TValue *key);
27dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC Table *luaH_new (lua_State *L);
28dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC void luaH_resize (lua_State *L, Table *t, int nasize, int nhsize);
29dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, int nasize);
30dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC void luaH_free (lua_State *L, Table *t);
31dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key);
32dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC int luaH_getn (Table *t);
33dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
34dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
35dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#if defined(LUA_DEBUG)
36dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC Node *luaH_mainposition (const Table *t, const TValue *key);
37dff7e11c2000d6745261de046d76b1500a05ece9reed@google.comLUAI_FUNC int luaH_isdummy (Node *n);
38dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#endif
39dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
40dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com
41dff7e11c2000d6745261de046d76b1500a05ece9reed@google.com#endif
42