41 #if LUAI_BITSINT >= 32
44 #define MAXBITS (LUAI_BITSINT-2)
47 #define MAXASIZE (1 << MAXBITS)
50 #define hashpow2(t,n) (gnode(t, lmod((n), sizenode(t))))
52 #define hashstr(t,str) hashpow2(t, (str)->tsv.hash)
53 #define hashboolean(t,p) hashpow2(t, p)
60 #define hashmod(t,n) (gnode(t, ((n) % ((sizenode(t)-1)|1))))
63 #define hashpointer(t,p) hashmod(t, IntPoint(p))
66 #define dummynode (&dummynode_)
68 #define isdummy(n) ((n) == dummynode)
83 if (
cast(
unsigned int, i) == 0u - i)
147 if (0 < i && i <= t->sizearray)
201 for (i = 0, twotoi = 1; twotoi/2 < *narray; i++, twotoi *= 2) {
209 if (a == *narray)
break;
233 for (lg=0, ttlg=1; lg<=
MAXBITS; lg++, ttlg*=2) {
242 for (; i <= lim; i++) {
291 for (i=0; i<
size; i++) {
308 if (nasize > oldasize)
312 if (nasize < oldasize) {
315 for (i=nasize; i<oldasize; i++) {
323 for (i =
twoto(oldhsize) - 1; i >= 0; i--) {
347 for (i=0; i<=
MAXBITS; i++) nums[i] = 0;
422 while (
gnext(othern) != mp) othern =
gnext(othern);
448 return &t->
array[key-1];
481 switch (
ttype(key)) {
547 unsigned int m = (i+j)/2;
565 unsigned int m = (i+j)/2;
579 #if defined(LUA_DEBUG)
static int findindex(lua_State *L, Table *t, StkId key)
static int computesizes(int nums[], int *narray)
l_noret luaG_runerror(lua_State *L, const char *fmt,...)
int luaH_next(lua_State *L, Table *t, StkId key)
#define luaM_newvector(L, n, t)
unsigned int luaS_hash(const char *str, size_t l, unsigned int seed)
void luaH_resize(lua_State *L, Table *t, int nasize, int nhsize)
#define luaM_freearray(L, b, n)
static const Node dummynode_
static void setnodevector(lua_State *L, Table *t, int size)
int luaO_ceillog2(unsigned int x)
const TValue * luaH_getstr(Table *t, TString *key)
GCObject * luaC_newobj(lua_State *L, int tt, size_t sz, GCObject **list, int offset)
const TValue * luaH_get(Table *t, const TValue *key)
#define luai_hashnum(i, n)
#define setnvalue(obj, x)
#define LUA_TLIGHTUSERDATA
static int countint(const TValue *key, int *nums)
TValue * luaH_set(lua_State *L, Table *t, const TValue *key)
#define luaM_reallocvector(L, v, oldn, n, t)
This module controls the multiplayer lobby.
#define luaV_rawequalobj(o1, o2)
void luaH_resizearray(lua_State *L, Table *t, int nasize)
GLsizei const GLfloat * value
GLboolean GLboolean GLboolean GLboolean a
Table * luaH_new(lua_State *L)
const TValue * luaH_getint(Table *t, int key)
static Node * mainposition(const Table *t, const TValue *key)
void luaH_free(lua_State *L, Table *t)
#define lua_number2int(i, n)
void luaH_setint(lua_State *L, Table *t, int key, TValue *value)
#define hashboolean(t, p)
static int numusearray(const Table *t, int *nums)
static void rehash(lua_State *L, Table *t, const TValue *ek)
#define luaC_barrierback(L, p, v)
static Node * hashnum(const Table *t, lua_Number n)
static void setarrayvector(lua_State *L, Table *t, int size)
static int numusehash(const Table *t, int *nums, int *pnasize)
#define hashpointer(t, p)
static int arrayindex(const TValue *key)
static int unbound_search(Table *t, unsigned int j)
static Node * getfreepos(Table *t)
TValue * luaH_newkey(lua_State *L, Table *t, const TValue *key)