?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1. /*
  2. ** $Id: ltable.h $
  3. ** Lua tables (hash)
  4. ** See Copyright Notice in lua.h
  5. */
  6.  
  7. #ifndef ltable_h
  8. #define ltable_h
  9.  
  10. #include "lobject.h"
  11.  
  12.  
  13. #define gnode(t,i)      (&(t)->node[i])
  14. #define gval(n)         (&(n)->i_val)
  15. #define gnext(n)        ((n)->u.next)
  16.  
  17.  
  18. /*
  19. ** Clear all bits of fast-access metamethods, which means that the table
  20. ** may have any of these metamethods. (First access that fails after the
  21. ** clearing will set the bit again.)
  22. */
  23. #define invalidateTMcache(t)    ((t)->flags &= ~maskflags)
  24.  
  25.  
  26. /* true when 't' is using 'dummynode' as its hash part */
  27. #define isdummy(t)              ((t)->lastfree == NULL)
  28.  
  29.  
  30. /* allocated size for hash nodes */
  31. #define allocsizenode(t)        (isdummy(t) ? 0 : sizenode(t))
  32.  
  33.  
  34. /* returns the Node, given the value of a table entry */
  35. #define nodefromval(v)  cast(Node *, (v))
  36.  
  37.  
  38. LUAI_FUNC const TValue *luaH_getint (Table *t, lua_Integer key);
  39. LUAI_FUNC void luaH_setint (lua_State *L, Table *t, lua_Integer key,
  40.                                                     TValue *value);
  41. LUAI_FUNC const TValue *luaH_getshortstr (Table *t, TString *key);
  42. LUAI_FUNC const TValue *luaH_getstr (Table *t, TString *key);
  43. LUAI_FUNC const TValue *luaH_get (Table *t, const TValue *key);
  44. LUAI_FUNC void luaH_newkey (lua_State *L, Table *t, const TValue *key,
  45.                                                     TValue *value);
  46. LUAI_FUNC void luaH_set (lua_State *L, Table *t, const TValue *key,
  47.                                                  TValue *value);
  48. LUAI_FUNC void luaH_finishset (lua_State *L, Table *t, const TValue *key,
  49.                                        const TValue *slot, TValue *value);
  50. LUAI_FUNC Table *luaH_new (lua_State *L);
  51. LUAI_FUNC void luaH_resize (lua_State *L, Table *t, unsigned int nasize,
  52.                                                     unsigned int nhsize);
  53. LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, unsigned int nasize);
  54. LUAI_FUNC void luaH_free (lua_State *L, Table *t);
  55. LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key);
  56. LUAI_FUNC lua_Unsigned luaH_getn (Table *t);
  57. LUAI_FUNC unsigned int luaH_realasize (const Table *t);
  58.  
  59.  
  60. #if defined(LUA_DEBUG)
  61. LUAI_FUNC Node *luaH_mainposition (const Table *t, const TValue *key);
  62. LUAI_FUNC int luaH_isdummy (const Table *t);
  63. #endif
  64.  
  65.  
  66. #endif
  67.