aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2007-04-10 09:18:17 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2007-04-10 09:18:17 -0300
commit94d40f3980d4f13ed33d1c23fcc8c7aafbd7be59 (patch)
treefc38e115dc56be07d1fe2edfc4b6fc35b9d9847b
parent585b81f91eeff445f77de7276b23c8b8df22e8c5 (diff)
downloadlua-94d40f3980d4f13ed33d1c23fcc8c7aafbd7be59.tar.gz
lua-94d40f3980d4f13ed33d1c23fcc8c7aafbd7be59.tar.bz2
lua-94d40f3980d4f13ed33d1c23fcc8c7aafbd7be59.zip
luaO_log2 can be private to ltable.c
-rw-r--r--lobject.c20
-rw-r--r--lobject.h5
-rw-r--r--ltable.c20
3 files changed, 21 insertions, 24 deletions
diff --git a/lobject.c b/lobject.c
index 92c28144..0a00330f 100644
--- a/lobject.c
+++ b/lobject.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lobject.c,v 2.23 2006/07/11 15:53:29 roberto Exp roberto $ 2** $Id: lobject.c,v 2.24 2006/11/22 11:02:03 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*/
@@ -51,24 +51,6 @@ int luaO_fb2int (int x) {
51} 51}
52 52
53 53
54int luaO_log2 (unsigned int x) {
55 static const lu_byte log_2[256] = {
56 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
57 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
58 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
59 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
60 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
61 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
62 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
63 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
64 };
65 int l = -1;
66 while (x >= 256) { l += 8; x >>= 8; }
67 return l + log_2[x];
68
69}
70
71
72int luaO_rawequalObj (const TValue *t1, const TValue *t2) { 54int luaO_rawequalObj (const TValue *t1, const TValue *t2) {
73 if (ttype(t1) != ttype(t2)) return 0; 55 if (ttype(t1) != ttype(t2)) return 0;
74 else switch (ttype(t1)) { 56 else switch (ttype(t1)) {
diff --git a/lobject.h b/lobject.h
index bb786b01..b8765f96 100644
--- a/lobject.h
+++ b/lobject.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lobject.h,v 2.20 2006/01/18 11:37:34 roberto Exp roberto $ 2** $Id: lobject.h,v 2.21 2006/09/11 14:07:24 roberto Exp roberto $
3** Type definitions for Lua objects 3** Type definitions for Lua objects
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -364,9 +364,6 @@ typedef struct Table {
364 364
365LUAI_DATA const TValue luaO_nilobject_; 365LUAI_DATA const TValue luaO_nilobject_;
366 366
367#define ceillog2(x) (luaO_log2((x)-1) + 1)
368
369LUAI_FUNC int luaO_log2 (unsigned int x);
370LUAI_FUNC int luaO_int2fb (unsigned int x); 367LUAI_FUNC int luaO_int2fb (unsigned int x);
371LUAI_FUNC int luaO_fb2int (int x); 368LUAI_FUNC int luaO_fb2int (int x);
372LUAI_FUNC int luaO_rawequalObj (const TValue *t1, const TValue *t2); 369LUAI_FUNC int luaO_rawequalObj (const TValue *t1, const TValue *t2);
diff --git a/ltable.c b/ltable.c
index 722e1de3..1b3bc540 100644
--- a/ltable.c
+++ b/ltable.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltable.c,v 2.34 2006/08/07 19:14:30 roberto Exp roberto $ 2** $Id: ltable.c,v 2.35 2006/09/11 14:07:24 roberto Exp roberto $
3** Lua tables (hash) 3** Lua tables (hash)
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -186,6 +186,24 @@ int luaH_next (lua_State *L, Table *t, StkId key) {
186*/ 186*/
187 187
188 188
189static int ceillog2 (unsigned int x) {
190 static const lu_byte log_2[256] = {
191 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
192 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
193 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
194 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
195 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
196 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
197 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
198 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
199 };
200 int l = 0;
201 x--;
202 while (x >= 256) { l += 8; x >>= 8; }
203 return l + log_2[x];
204}
205
206
189static int computesizes (int nums[], int *narray) { 207static int computesizes (int nums[], int *narray) {
190 int i; 208 int i;
191 int twotoi; /* 2^i */ 209 int twotoi; /* 2^i */