diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2014-04-30 15:59:15 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2014-04-30 15:59:15 -0300 |
| commit | 6b630c0fa0e81ce8c259ab9945604803f04fac3d (patch) | |
| tree | d9690ef14c2edadd94b0c230ed00b3ef3ab01cd8 | |
| parent | 1a6ef098b0edbb495afb8cfe4e4cdb434eed50a6 (diff) | |
| download | lua-6b630c0fa0e81ce8c259ab9945604803f04fac3d.tar.gz lua-6b630c0fa0e81ce8c259ab9945604803f04fac3d.tar.bz2 lua-6b630c0fa0e81ce8c259ab9945604803f04fac3d.zip | |
debug.numbits replaced by debug.Csize
| -rw-r--r-- | ldblib.c | 36 |
1 files changed, 25 insertions, 11 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: ldblib.c,v 1.136 2014/02/19 13:51:09 roberto Exp roberto $ | 2 | ** $Id: ldblib.c,v 1.137 2014/03/12 20:57:40 roberto Exp roberto $ |
| 3 | ** Interface from Lua to its debug API | 3 | ** Interface from Lua to its debug API |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -21,16 +21,30 @@ | |||
| 21 | #define HOOKKEY "_HKEY" | 21 | #define HOOKKEY "_HKEY" |
| 22 | 22 | ||
| 23 | 23 | ||
| 24 | 24 | static int db_Csize (lua_State *L) { | |
| 25 | static int db_numbits (lua_State *L) { | 25 | static struct { |
| 26 | char c; | ||
| 27 | unsigned char sz; | ||
| 28 | } sizes[] = { | ||
| 29 | {'I', sizeof(lua_Integer)}, | ||
| 30 | {'F', sizeof(lua_Number)}, | ||
| 31 | {'b', CHAR_BIT}, | ||
| 32 | {'h', sizeof(short)}, | ||
| 33 | {'i', sizeof(int)}, | ||
| 34 | {'l', sizeof(long)}, | ||
| 35 | {'z', sizeof(size_t)}, | ||
| 36 | {'f', sizeof(float)}, | ||
| 37 | {'d', sizeof(double)} | ||
| 38 | }; | ||
| 26 | const char *s = luaL_checkstring(L, 1); | 39 | const char *s = luaL_checkstring(L, 1); |
| 27 | if (*s == 'i') | 40 | int i; |
| 28 | lua_pushinteger(L, sizeof(lua_Integer) * CHAR_BIT); | 41 | for (i = 0; i < (int)(sizeof(sizes)/sizeof(sizes[0])); i++) { |
| 29 | else if (*s == 'f') | 42 | if (*s == sizes[i].c) { |
| 30 | lua_pushinteger(L, sizeof(lua_Number) * CHAR_BIT); | 43 | lua_pushinteger(L, sizes[i].sz); |
| 31 | else | 44 | return 1; |
| 32 | luaL_argerror(L, 1, lua_pushfstring(L, "invalid option '%s'", s)); | 45 | } |
| 33 | return 1; | 46 | } |
| 47 | return luaL_argerror(L, 1, lua_pushfstring(L, "invalid option '%c'", *s)); | ||
| 34 | } | 48 | } |
| 35 | 49 | ||
| 36 | 50 | ||
| @@ -379,6 +393,7 @@ static int db_traceback (lua_State *L) { | |||
| 379 | 393 | ||
| 380 | 394 | ||
| 381 | static const luaL_Reg dblib[] = { | 395 | static const luaL_Reg dblib[] = { |
| 396 | {"Csize", db_Csize}, | ||
| 382 | {"debug", db_debug}, | 397 | {"debug", db_debug}, |
| 383 | {"getuservalue", db_getuservalue}, | 398 | {"getuservalue", db_getuservalue}, |
| 384 | {"gethook", db_gethook}, | 399 | {"gethook", db_gethook}, |
| @@ -387,7 +402,6 @@ static const luaL_Reg dblib[] = { | |||
| 387 | {"getregistry", db_getregistry}, | 402 | {"getregistry", db_getregistry}, |
| 388 | {"getmetatable", db_getmetatable}, | 403 | {"getmetatable", db_getmetatable}, |
| 389 | {"getupvalue", db_getupvalue}, | 404 | {"getupvalue", db_getupvalue}, |
| 390 | {"numbits", db_numbits}, | ||
| 391 | {"upvaluejoin", db_upvaluejoin}, | 405 | {"upvaluejoin", db_upvaluejoin}, |
| 392 | {"upvalueid", db_upvalueid}, | 406 | {"upvalueid", db_upvalueid}, |
| 393 | {"setuservalue", db_setuservalue}, | 407 | {"setuservalue", db_setuservalue}, |
