Przeglądaj źródła

no more `lua_istrue' function

Roberto Ierusalimschy 23 lat temu
rodzic
commit
87b0e3d477
4 zmienionych plików z 10 dodań i 16 usunięć
  1. 1 10
      lapi.c
  2. 2 2
      lbaselib.c
  3. 2 2
      lstrlib.c
  4. 5 2
      lua.h

+ 1 - 10
lapi.c

@@ -185,12 +185,6 @@ LUA_API int lua_isnumber (lua_State *L, int index) {
 }
 }
 
 
 
 
-LUA_API int lua_istrue (lua_State *L, int index) {
-  TObject *o = luaA_indexAcceptable(L, index);
-  return (o != NULL && !l_isfalse(o));
-}
-
-
 LUA_API int lua_isstring (lua_State *L, int index) {
 LUA_API int lua_isstring (lua_State *L, int index) {
   int t = lua_type(L, index);
   int t = lua_type(L, index);
   return (t == LUA_TSTRING || t == LUA_TNUMBER);
   return (t == LUA_TSTRING || t == LUA_TNUMBER);
@@ -231,10 +225,7 @@ LUA_API lua_Number lua_tonumber (lua_State *L, int index) {
 
 
 LUA_API int lua_toboolean (lua_State *L, int index) {
 LUA_API int lua_toboolean (lua_State *L, int index) {
   const TObject *o = luaA_indexAcceptable(L, index);
   const TObject *o = luaA_indexAcceptable(L, index);
-  if (o != NULL && (ttype(o) == LUA_TBOOLEAN))
-    return bvalue(o);
-  else
-    return -1;
+  return (o != NULL) && !l_isfalse(o);
 }
 }
 
 
 
 

+ 2 - 2
lbaselib.c

@@ -264,7 +264,7 @@ static int luaB_loadfile (lua_State *L) {
 
 
 static int luaB_assert (lua_State *L) {
 static int luaB_assert (lua_State *L) {
   luaL_check_any(L, 1);
   luaL_check_any(L, 1);
-  if (!lua_istrue(L, 1))
+  if (!lua_toboolean(L, 1))
     luaL_verror(L, "assertion failed!  %.90s", luaL_opt_string(L, 2, ""));
     luaL_verror(L, "assertion failed!  %.90s", luaL_opt_string(L, 2, ""));
   lua_settop(L, 1);
   lua_settop(L, 1);
   return 1;
   return 1;
@@ -569,7 +569,7 @@ static int sort_comp (lua_State *L, int a, int b) {
     lua_pushvalue(L, a-1);  /* -1 to compensate function */
     lua_pushvalue(L, a-1);  /* -1 to compensate function */
     lua_pushvalue(L, b-2);  /* -2 to compensate function and `a' */
     lua_pushvalue(L, b-2);  /* -2 to compensate function and `a' */
     lua_rawcall(L, 2, 1);
     lua_rawcall(L, 2, 1);
-    res = lua_istrue(L, -1);
+    res = lua_toboolean(L, -1);
     lua_pop(L, 1);
     lua_pop(L, 1);
     return res;
     return res;
   }
   }

+ 2 - 2
lstrlib.c

@@ -154,12 +154,12 @@ static int str_char (lua_State *L) {
 typedef struct MatchState {
 typedef struct MatchState {
   const char *src_init;  /* init of source string */
   const char *src_init;  /* init of source string */
   const char *src_end;  /* end (`\0') of source string */
   const char *src_end;  /* end (`\0') of source string */
+  lua_State *L;
   int level;  /* total number of captures (finished or unfinished) */
   int level;  /* total number of captures (finished or unfinished) */
   struct {
   struct {
     const char *init;
     const char *init;
     sint32 len;
     sint32 len;
   } capture[MAX_CAPTURES];
   } capture[MAX_CAPTURES];
-  lua_State *L;
 } MatchState;
 } MatchState;
 
 
 
 
@@ -449,7 +449,7 @@ static int str_find (lua_State *L) {
   const char *p = luaL_check_lstr(L, 2, &l2);
   const char *p = luaL_check_lstr(L, 2, &l2);
   sint32 init = posrelat(luaL_opt_long(L, 3, 1), l1) - 1;
   sint32 init = posrelat(luaL_opt_long(L, 3, 1), l1) - 1;
   luaL_arg_check(L, 0 <= init && (size_t)(init) <= l1, 3, "out of range");
   luaL_arg_check(L, 0 <= init && (size_t)(init) <= l1, 3, "out of range");
-  if (lua_istrue(L, 4) ||  /* explicit request? */
+  if (lua_toboolean(L, 4) ||  /* explicit request? */
       strpbrk(p, SPECIALS) == NULL) {  /* or no special characters? */
       strpbrk(p, SPECIALS) == NULL) {  /* or no special characters? */
     /* do a plain search */
     /* do a plain search */
     const char *s2 = lmemfind(s+init, l1-init, p, l2);
     const char *s2 = lmemfind(s+init, l1-init, p, l2);

+ 5 - 2
lua.h

@@ -117,7 +117,6 @@ LUA_API int   lua_stackspace (lua_State *L);
 */
 */
 
 
 LUA_API int             lua_isnumber (lua_State *L, int index);
 LUA_API int             lua_isnumber (lua_State *L, int index);
-LUA_API int             lua_istrue (lua_State *L, int index);
 LUA_API int             lua_isstring (lua_State *L, int index);
 LUA_API int             lua_isstring (lua_State *L, int index);
 LUA_API int             lua_iscfunction (lua_State *L, int index);
 LUA_API int             lua_iscfunction (lua_State *L, int index);
 LUA_API int             lua_type (lua_State *L, int index);
 LUA_API int             lua_type (lua_State *L, int index);
@@ -217,7 +216,11 @@ LUA_API void  lua_newuserdatabox (lua_State *L, void *u);
 
 
 #define lua_pop(L,n)		lua_settop(L, -(n)-1)
 #define lua_pop(L,n)		lua_settop(L, -(n)-1)
 
 
-#define lua_register(L,n,f)	(lua_pushcfunction(L, f), lua_setglobal(L, n))
+#define lua_register(L,n,f) \
+	(lua_pushstring(L, n), \
+	 lua_pushcfunction(L, f), \
+	 lua_settable(L, LUA_GLOBALSINDEX))
+
 #define lua_pushcfunction(L,f)	lua_pushcclosure(L, f, 0)
 #define lua_pushcfunction(L,f)	lua_pushcclosure(L, f, 0)
 
 
 #define lua_isfunction(L,n)	(lua_type(L,n) == LUA_TFUNCTION)
 #define lua_isfunction(L,n)	(lua_type(L,n) == LUA_TFUNCTION)