diff options
Diffstat (limited to 'lobject.c')
| -rw-r--r-- | lobject.c | 25 |
1 files changed, 8 insertions, 17 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lobject.c,v 1.24 1999/10/04 17:51:04 roberto Exp roberto $ | 2 | ** $Id: lobject.c,v 1.25 1999/11/22 13:12:07 roberto Exp roberto $ |
| 3 | ** Some generic functions over Lua objects | 3 | ** Some generic functions over Lua objects |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -22,22 +22,13 @@ const char *const luaO_typenames[] = { /* ORDER LUA_T */ | |||
| 22 | const TObject luaO_nilobject = {LUA_T_NIL, {NULL}}; | 22 | const TObject luaO_nilobject = {LUA_T_NIL, {NULL}}; |
| 23 | 23 | ||
| 24 | 24 | ||
| 25 | 25 | /* | |
| 26 | /* hash dimensions values */ | 26 | ** returns smaller power of 2 bigger than `n' (minimum is MINPOWER2) |
| 27 | static const long dimensions[] = | 27 | */ |
| 28 | {5L, 11L, 23L, 47L, 97L, 197L, 397L, 797L, 1597L, 3203L, 6421L, | 28 | unsigned long luaO_power2 (unsigned long n) { |
| 29 | 12853L, 25717L, 51437L, 102811L, 205619L, 411233L, 822433L, | 29 | unsigned long p = MINPOWER2; |
| 30 | 1644817L, 3289613L, 6579211L, 13158023L, MAX_INT}; | 30 | while (p<=n) p<<=1; |
| 31 | 31 | return p; | |
| 32 | |||
| 33 | int luaO_redimension (lua_State *L, int oldsize) { | ||
| 34 | int i; | ||
| 35 | for (i=0; dimensions[i]<MAX_INT; i++) { | ||
| 36 | if (dimensions[i] > oldsize) | ||
| 37 | return dimensions[i]; | ||
| 38 | } | ||
| 39 | lua_error(L, "tableEM"); | ||
| 40 | return 0; /* to avoid warnings */ | ||
| 41 | } | 32 | } |
| 42 | 33 | ||
| 43 | 34 | ||
