aboutsummaryrefslogtreecommitdiff
path: root/lobject.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2003-02-18 13:02:56 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2003-02-18 13:02:56 -0300
commit60c83ded3080a23bc661ab440c36d0a71b399e2e (patch)
tree0aa24b14c1215541b52e7885fd2f2c41aa128a06 /lobject.c
parent07948c3181702c55b7b36069ca519b54371a4ab7 (diff)
downloadlua-60c83ded3080a23bc661ab440c36d0a71b399e2e.tar.gz
lua-60c83ded3080a23bc661ab440c36d0a71b399e2e.tar.bz2
lua-60c83ded3080a23bc661ab440c36d0a71b399e2e.zip
small optimization for sizes of array constructors
Diffstat (limited to 'lobject.c')
-rw-r--r--lobject.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/lobject.c b/lobject.c
index ebe2728f..5c5c1383 100644
--- a/lobject.c
+++ b/lobject.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lobject.c,v 1.94 2002/12/04 17:38:31 roberto Exp roberto $ 2** $Id: lobject.c,v 1.95 2003/01/27 13:00:43 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*/
@@ -30,6 +30,20 @@
30const TObject luaO_nilobject = {LUA_TNIL, {NULL}}; 30const TObject luaO_nilobject = {LUA_TNIL, {NULL}};
31 31
32 32
33/*
34** converts an integer to a "floating point byte", represented as
35** (mmmmmxxx), where the real value is (xxx) * 2^(mmmmm)
36*/
37int luaO_int2fb (unsigned int x) {
38 int m = 0; /* mantissa */
39 while (x >= (1<<3)) {
40 x = (x+1) >> 1;
41 m++;
42 }
43 return (m << 3) | cast(int, x);
44}
45
46
33int luaO_log2 (unsigned int x) { 47int luaO_log2 (unsigned int x) {
34 static const lu_byte log_8[255] = { 48 static const lu_byte log_8[255] = {
35 0, 49 0,