Pārlūkot izejas kodu

warnings from several compilers (mainly typecasts when lua_Number is float)

Roberto Ierusalimschy 22 gadi atpakaļ
vecāks
revīzija
0d88545b82
17 mainītis faili ar 100 papildinājumiem un 100 dzēšanām
  1. 3 3
      lapi.c
  2. 4 4
      lauxlib.c
  3. 3 3
      lauxlib.h
  4. 4 4
      lbaselib.c
  5. 2 2
      lcode.c
  6. 5 4
      ldblib.c
  7. 3 5
      ldo.c
  8. 3 2
      lgc.c
  9. 3 3
      lobject.c
  10. 2 2
      lparser.c
  11. 2 2
      lstate.c
  12. 11 11
      lstrlib.c
  13. 3 3
      ltable.c
  14. 3 3
      ltablib.c
  15. 45 45
      ltests.c
  16. 2 2
      ltm.c
  17. 2 2
      lvm.c

+ 3 - 3
lapi.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lapi.c,v 1.232 2003/02/27 12:33:07 roberto Exp roberto $
+** $Id: lapi.c,v 1.233 2003/03/14 18:59:21 roberto Exp roberto $
 ** Lua API
 ** Lua API
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -681,7 +681,7 @@ LUA_API int lua_pcall (lua_State *L, int nargs, int nresults, int errfunc) {
   func = (errfunc == 0) ? 0 : savestack(L, luaA_index(L, errfunc));
   func = (errfunc == 0) ? 0 : savestack(L, luaA_index(L, errfunc));
   c.func = L->top - (nargs+1);  /* function to be called */
   c.func = L->top - (nargs+1);  /* function to be called */
   c.nresults = nresults;
   c.nresults = nresults;
-  status = luaD_pcall(L, &f_call, &c, savestack(L, c.func), func);
+  status = luaD_pcall(L, f_call, &c, savestack(L, c.func), func);
   lua_unlock(L);
   lua_unlock(L);
   return status;
   return status;
 }
 }
@@ -715,7 +715,7 @@ LUA_API int lua_cpcall (lua_State *L, lua_CFunction func, void *ud) {
   lua_lock(L);
   lua_lock(L);
   c.func = func;
   c.func = func;
   c.ud = ud;
   c.ud = ud;
-  status = luaD_pcall(L, &f_Ccall, &c, savestack(L, L->top), 0);
+  status = luaD_pcall(L, f_Ccall, &c, savestack(L, L->top), 0);
   lua_unlock(L);
   lua_unlock(L);
   return status;
   return status;
 }
 }

+ 4 - 4
lauxlib.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lauxlib.c,v 1.97 2003/03/18 18:48:31 roberto Exp roberto $
+** $Id: lauxlib.c,v 1.98 2003/04/01 17:52:31 roberto Exp roberto $
 ** Auxiliary functions for building Lua libraries
 ** Auxiliary functions for building Lua libraries
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -278,13 +278,13 @@ void luaL_setn (lua_State *L, int t, int n) {
   lua_rawget(L, t);
   lua_rawget(L, t);
   if (checkint(L, 1) >= 0) {  /* is there a numeric field `n'? */
   if (checkint(L, 1) >= 0) {  /* is there a numeric field `n'? */
     lua_pushliteral(L, "n");  /* use it */
     lua_pushliteral(L, "n");  /* use it */
-    lua_pushnumber(L, n);
+    lua_pushnumber(L, (lua_Number)n);
     lua_rawset(L, t);
     lua_rawset(L, t);
   }
   }
   else {  /* use `sizes' */
   else {  /* use `sizes' */
     getsizes(L);
     getsizes(L);
     lua_pushvalue(L, t);
     lua_pushvalue(L, t);
-    lua_pushnumber(L, n);
+    lua_pushnumber(L, (lua_Number)n);
     lua_rawset(L, -3);  /* sizes[t] = n */
     lua_rawset(L, -3);  /* sizes[t] = n */
     lua_pop(L, 1);  /* remove `sizes' */
     lua_pop(L, 1);  /* remove `sizes' */
   }
   }
@@ -438,7 +438,7 @@ LUALIB_API void luaL_unref (lua_State *L, int t, int ref) {
   if (ref >= 0) {
   if (ref >= 0) {
     lua_rawgeti(L, t, FREELIST_REF);
     lua_rawgeti(L, t, FREELIST_REF);
     lua_rawseti(L, t, ref);  /* t[ref] = t[FREELIST_REF] */
     lua_rawseti(L, t, ref);  /* t[ref] = t[FREELIST_REF] */
-    lua_pushnumber(L, ref);
+    lua_pushnumber(L, (lua_Number)ref);
     lua_rawseti(L, t, FREELIST_REF);  /* t[FREELIST_REF] = ref */
     lua_rawseti(L, t, FREELIST_REF);  /* t[FREELIST_REF] = ref */
   }
   }
 }
 }

+ 3 - 3
lauxlib.h

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lauxlib.h,v 1.58 2003/02/11 15:32:31 roberto Exp roberto $
+** $Id: lauxlib.h,v 1.59 2003/03/18 12:25:32 roberto Exp roberto $
 ** Auxiliary functions for building Lua libraries
 ** Auxiliary functions for building Lua libraries
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -76,8 +76,8 @@ LUALIB_API int luaL_loadbuffer (lua_State *L, const char *buff, size_t sz,
 #define luaL_optstring(L,n,d)	(luaL_optlstring(L, (n), (d), NULL))
 #define luaL_optstring(L,n,d)	(luaL_optlstring(L, (n), (d), NULL))
 #define luaL_checkint(L,n)	((int)luaL_checknumber(L, n))
 #define luaL_checkint(L,n)	((int)luaL_checknumber(L, n))
 #define luaL_checklong(L,n)	((long)luaL_checknumber(L, n))
 #define luaL_checklong(L,n)	((long)luaL_checknumber(L, n))
-#define luaL_optint(L,n,d)	((int)luaL_optnumber(L, n,d))
-#define luaL_optlong(L,n,d)	((long)luaL_optnumber(L, n,d))
+#define luaL_optint(L,n,d)	((int)luaL_optnumber(L, n,(lua_Number)(d)))
+#define luaL_optlong(L,n,d)	((long)luaL_optnumber(L, n,(lua_Number)(d)))
 
 
 
 
 /*
 /*

+ 4 - 4
lbaselib.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lbaselib.c,v 1.128 2003/03/11 18:17:43 roberto Exp roberto $
+** $Id: lbaselib.c,v 1.129 2003/03/19 21:14:34 roberto Exp roberto $
 ** Basic library
 ** Basic library
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -66,7 +66,7 @@ static int luaB_tonumber (lua_State *L) {
     if (s1 != s2) {  /* at least one valid digit? */
     if (s1 != s2) {  /* at least one valid digit? */
       while (isspace((unsigned char)(*s2))) s2++;  /* skip trailing spaces */
       while (isspace((unsigned char)(*s2))) s2++;  /* skip trailing spaces */
       if (*s2 == '\0') {  /* no invalid trailing characters? */
       if (*s2 == '\0') {  /* no invalid trailing characters? */
-        lua_pushnumber(L, n);
+        lua_pushnumber(L, (lua_Number)n);
         return 1;
         return 1;
       }
       }
     }
     }
@@ -187,8 +187,8 @@ static int luaB_rawset (lua_State *L) {
 
 
 
 
 static int luaB_gcinfo (lua_State *L) {
 static int luaB_gcinfo (lua_State *L) {
-  lua_pushnumber(L, lua_getgccount(L));
-  lua_pushnumber(L, lua_getgcthreshold(L));
+  lua_pushnumber(L, (lua_Number)lua_getgccount(L));
+  lua_pushnumber(L, (lua_Number)lua_getgcthreshold(L));
   return 2;
   return 2;
 }
 }
 
 

+ 2 - 2
lcode.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lcode.c,v 1.115 2002/12/11 12:34:22 roberto Exp roberto $
+** $Id: lcode.c,v 1.116 2003/02/27 12:33:07 roberto Exp roberto $
 ** Code generator for Lua
 ** Code generator for Lua
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -217,7 +217,7 @@ static int addk (FuncState *fs, TObject *k, TObject *v) {
     luaM_growvector(fs->L, f->k, fs->nk, f->sizek, TObject,
     luaM_growvector(fs->L, f->k, fs->nk, f->sizek, TObject,
                     MAXARG_Bx, "constant table overflow");
                     MAXARG_Bx, "constant table overflow");
     setobj2n(&f->k[fs->nk], v);
     setobj2n(&f->k[fs->nk], v);
-    setnvalue(luaH_set(fs->L, fs->h, k), fs->nk);
+    setnvalue(luaH_set(fs->L, fs->h, k), cast(lua_Number, fs->nk));
     return fs->nk++;
     return fs->nk++;
   }
   }
 }
 }

+ 5 - 4
ldblib.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: ldblib.c,v 1.78 2003/02/27 11:52:30 roberto Exp roberto $
+** $Id: ldblib.c,v 1.79 2003/03/11 12:24:34 roberto Exp roberto $
 ** Interface from Lua to its debug API
 ** Interface from Lua to its debug API
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -27,7 +27,7 @@ static void settabss (lua_State *L, const char *i, const char *v) {
 
 
 static void settabsi (lua_State *L, const char *i, int v) {
 static void settabsi (lua_State *L, const char *i, int v) {
   lua_pushstring(L, i);
   lua_pushstring(L, i);
-  lua_pushnumber(L, v);
+  lua_pushnumber(L, (lua_Number)v);
   lua_rawset(L, -3);
   lua_rawset(L, -3);
 }
 }
 
 
@@ -143,7 +143,8 @@ static void hookf (lua_State *L, lua_Debug *ar) {
   lua_rawget(L, LUA_REGISTRYINDEX);
   lua_rawget(L, LUA_REGISTRYINDEX);
   if (lua_isfunction(L, -1)) {
   if (lua_isfunction(L, -1)) {
     lua_pushstring(L, hooknames[(int)ar->event]);
     lua_pushstring(L, hooknames[(int)ar->event]);
-    if (ar->currentline >= 0) lua_pushnumber(L, ar->currentline);
+    if (ar->currentline >= 0)
+      lua_pushnumber(L, (lua_Number)ar->currentline);
     else lua_pushnil(L);
     else lua_pushnil(L);
     lua_assert(lua_getinfo(L, "lS", ar));
     lua_assert(lua_getinfo(L, "lS", ar));
     lua_call(L, 2, 0);
     lua_call(L, 2, 0);
@@ -202,7 +203,7 @@ static int gethook (lua_State *L) {
     lua_rawget(L, LUA_REGISTRYINDEX);   /* get hook */
     lua_rawget(L, LUA_REGISTRYINDEX);   /* get hook */
   }
   }
   lua_pushstring(L, unmakemask(mask, buff));
   lua_pushstring(L, unmakemask(mask, buff));
-  lua_pushnumber(L, lua_gethookcount(L));
+  lua_pushnumber(L, (lua_Number)lua_gethookcount(L));
   return 3;
   return 3;
 }
 }
 
 

+ 3 - 5
ldo.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: ldo.c,v 1.215 2003/02/28 15:42:08 roberto Exp roberto $
+** $Id: ldo.c,v 1.216 2003/02/28 19:45:15 roberto Exp roberto $
 ** Stack and Call structure of Lua
 ** Stack and Call structure of Lua
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -196,7 +196,7 @@ static void adjust_varargs (lua_State *L, int nfixargs, StkId base) {
     setobj2n(luaH_setnum(L, htab, i+1), L->top - actual + i);
     setobj2n(luaH_setnum(L, htab, i+1), L->top - actual + i);
   /* store counter in field `n' */
   /* store counter in field `n' */
   setsvalue(&nname, luaS_newliteral(L, "n"));
   setsvalue(&nname, luaS_newliteral(L, "n"));
-  setnvalue(luaH_set(L, htab, &nname), actual);
+  setnvalue(luaH_set(L, htab, &nname), cast(lua_Number, actual));
   L->top -= actual;  /* remove extra elements from the stack */
   L->top -= actual;  /* remove extra elements from the stack */
   sethvalue(L->top, htab);
   sethvalue(L->top, htab);
   incr_top(L);
   incr_top(L);
@@ -251,10 +251,8 @@ StkId luaD_precall (lua_State *L, StkId func) {
     L->base = L->ci->base = restorestack(L, funcr) + 1;
     L->base = L->ci->base = restorestack(L, funcr) + 1;
     ci->top = L->top + LUA_MINSTACK;
     ci->top = L->top + LUA_MINSTACK;
     ci->state = CI_C;  /* a C function */
     ci->state = CI_C;  /* a C function */
-    if (L->hookmask & LUA_MASKCALL) {
+    if (L->hookmask & LUA_MASKCALL)
       luaD_callhook(L, LUA_HOOKCALL, -1);
       luaD_callhook(L, LUA_HOOKCALL, -1);
-      ci = L->ci;  /* previous call may reallocate `ci' */
-    }
     lua_unlock(L);
     lua_unlock(L);
 #ifdef LUA_COMPATUPVALUES
 #ifdef LUA_COMPATUPVALUES
     lua_pushupvalues(L);
     lua_pushupvalues(L);

+ 3 - 2
lgc.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lgc.c,v 1.169 2003/02/11 10:46:24 roberto Exp roberto $
+** $Id: lgc.c,v 1.170 2003/03/18 12:50:04 roberto Exp roberto $
 ** Garbage Collector
 ** Garbage Collector
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -158,7 +158,8 @@ static void traversetable (GCState *st, Table *h) {
     if (weakkey || weakvalue) {  /* is really weak? */
     if (weakkey || weakvalue) {  /* is really weak? */
       GCObject **weaklist;
       GCObject **weaklist;
       h->marked &= ~(KEYWEAK | VALUEWEAK);  /* clear bits */
       h->marked &= ~(KEYWEAK | VALUEWEAK);  /* clear bits */
-      h->marked |= (weakkey << KEYWEAKBIT) | (weakvalue << VALUEWEAKBIT);
+      h->marked |= cast(lu_byte, (weakkey << KEYWEAKBIT) |
+                                 (weakvalue << VALUEWEAKBIT));
       weaklist = (weakkey && weakvalue) ? &st->wkv :
       weaklist = (weakkey && weakvalue) ? &st->wkv :
                               (weakkey) ? &st->wk :
                               (weakkey) ? &st->wk :
                                           &st->wv;
                                           &st->wv;

+ 3 - 3
lobject.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lobject.c,v 1.95 2003/01/27 13:00:43 roberto Exp roberto $
+** $Id: lobject.c,v 1.96 2003/02/18 16:02:56 roberto Exp roberto $
 ** Some generic functions over Lua objects
 ** Some generic functions over Lua objects
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -128,11 +128,11 @@ const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) {
         break;
         break;
       }
       }
       case 'd':
       case 'd':
-        setnvalue(L->top, va_arg(argp, int));
+        setnvalue(L->top, cast(lua_Number, va_arg(argp, int)));
         incr_top(L);
         incr_top(L);
         break;
         break;
       case 'f':
       case 'f':
-        setnvalue(L->top, va_arg(argp, l_uacNumber));
+        setnvalue(L->top, cast(lua_Number, va_arg(argp, l_uacNumber)));
         incr_top(L);
         incr_top(L);
         break;
         break;
       case '%':
       case '%':

+ 2 - 2
lparser.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lparser.c,v 1.206 2003/02/18 16:02:56 roberto Exp roberto $
+** $Id: lparser.c,v 1.207 2003/02/28 17:19:47 roberto Exp roberto $
 ** Lua Parser
 ** Lua Parser
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -961,7 +961,7 @@ static void cond (LexState *ls, expdesc *v) {
 static void whilestat (LexState *ls, int line) {
 static void whilestat (LexState *ls, int line) {
   /* whilestat -> WHILE cond DO block END */
   /* whilestat -> WHILE cond DO block END */
   Instruction codeexp[MAXEXPWHILE + EXTRAEXP];
   Instruction codeexp[MAXEXPWHILE + EXTRAEXP];
-  int lineexp = 0;
+  int lineexp;
   int i;
   int i;
   int sizeexp;
   int sizeexp;
   FuncState *fs = ls->fs;
   FuncState *fs = ls->fs;

+ 2 - 2
lstate.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lstate.c,v 1.121 2003/02/28 19:45:15 roberto Exp roberto $
+** $Id: lstate.c,v 1.122 2003/03/18 12:50:04 roberto Exp roberto $
 ** Global State
 ** Global State
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -100,7 +100,7 @@ static void f_luaopen (lua_State *L, void *ud) {
   setnilvalue(defaultmeta(L));
   setnilvalue(defaultmeta(L));
   setnilvalue(registry(L));
   setnilvalue(registry(L));
   luaZ_initbuffer(L, &g->buff);
   luaZ_initbuffer(L, &g->buff);
-  g->panic = &default_panic;
+  g->panic = default_panic;
   g->rootgc = NULL;
   g->rootgc = NULL;
   g->rootudata = NULL;
   g->rootudata = NULL;
   g->tmudata = NULL;
   g->tmudata = NULL;

+ 11 - 11
lstrlib.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lstrlib.c,v 1.96 2003/03/14 18:59:53 roberto Exp roberto $
+** $Id: lstrlib.c,v 1.97 2003/03/19 21:16:12 roberto Exp roberto $
 ** Standard library for string operations and pattern-matching
 ** Standard library for string operations and pattern-matching
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -31,7 +31,7 @@ typedef long sint32;	/* a signed version for size_t */
 static int str_len (lua_State *L) {
 static int str_len (lua_State *L) {
   size_t l;
   size_t l;
   luaL_checklstring(L, 1, &l);
   luaL_checklstring(L, 1, &l);
-  lua_pushnumber(L, l);
+  lua_pushnumber(L, (lua_Number)l);
   return 1;
   return 1;
 }
 }
 
 
@@ -48,7 +48,7 @@ static int str_sub (lua_State *L) {
   sint32 start = posrelat(luaL_checklong(L, 2), l);
   sint32 start = posrelat(luaL_checklong(L, 2), l);
   sint32 end = posrelat(luaL_optlong(L, 3, -1), l);
   sint32 end = posrelat(luaL_optlong(L, 3, -1), l);
   if (start < 1) start = 1;
   if (start < 1) start = 1;
-  if (end > (sint32)l) end = l;
+  if (end > (sint32)l) end = (sint32)l;
   if (start <= end)
   if (start <= end)
     lua_pushlstring(L, s+start-1, end-start+1);
     lua_pushlstring(L, s+start-1, end-start+1);
   else lua_pushliteral(L, "");
   else lua_pushliteral(L, "");
@@ -452,7 +452,7 @@ static void push_onecapture (MatchState *ms, int i) {
   int l = ms->capture[i].len;
   int l = ms->capture[i].len;
   if (l == CAP_UNFINISHED) luaL_error(ms->L, "unfinished capture");
   if (l == CAP_UNFINISHED) luaL_error(ms->L, "unfinished capture");
   if (l == CAP_POSITION)
   if (l == CAP_POSITION)
-    lua_pushnumber(ms->L, ms->capture[i].init - ms->src_init + 1);
+    lua_pushnumber(ms->L, (lua_Number)(ms->capture[i].init - ms->src_init + 1));
   else
   else
     lua_pushlstring(ms->L, ms->capture[i].init, l);
     lua_pushlstring(ms->L, ms->capture[i].init, l);
 }
 }
@@ -479,14 +479,14 @@ static int str_find (lua_State *L) {
   const char *p = luaL_checklstring(L, 2, &l2);
   const char *p = luaL_checklstring(L, 2, &l2);
   sint32 init = posrelat(luaL_optlong(L, 3, 1), l1) - 1;
   sint32 init = posrelat(luaL_optlong(L, 3, 1), l1) - 1;
   if (init < 0) init = 0;
   if (init < 0) init = 0;
-  else if ((size_t)(init) > l1) init = l1;
+  else if ((size_t)(init) > l1) init = (sint32)l1;
   if (lua_toboolean(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);
     if (s2) {
     if (s2) {
-      lua_pushnumber(L, s2-s+1);
-      lua_pushnumber(L, s2-s+l2);
+      lua_pushnumber(L, (lua_Number)(s2-s+1));
+      lua_pushnumber(L, (lua_Number)(s2-s+l2));
       return 2;
       return 2;
     }
     }
   }
   }
@@ -501,8 +501,8 @@ static int str_find (lua_State *L) {
       const char *res;
       const char *res;
       ms.level = 0;
       ms.level = 0;
       if ((res=match(&ms, s1, p)) != NULL) {
       if ((res=match(&ms, s1, p)) != NULL) {
-        lua_pushnumber(L, s1-s+1);  /* start */
-        lua_pushnumber(L, res-s);   /* end */
+        lua_pushnumber(L, (lua_Number)(s1-s+1));  /* start */
+        lua_pushnumber(L, (lua_Number)(res-s));   /* end */
         return push_captures(&ms, NULL, 0) + 2;
         return push_captures(&ms, NULL, 0) + 2;
       }
       }
     } while (s1++<ms.src_end && !anchor);
     } while (s1++<ms.src_end && !anchor);
@@ -529,7 +529,7 @@ static int gfind_aux (lua_State *L) {
     if ((e = match(&ms, src, p)) != NULL) {
     if ((e = match(&ms, src, p)) != NULL) {
       int newstart = e-s;
       int newstart = e-s;
       if (e == src) newstart++;  /* empty match? go at least one position */
       if (e == src) newstart++;  /* empty match? go at least one position */
-      lua_pushnumber(L, newstart);
+      lua_pushnumber(L, (lua_Number)newstart);
       lua_replace(L, lua_upvalueindex(3));
       lua_replace(L, lua_upvalueindex(3));
       return push_captures(&ms, src, e);
       return push_captures(&ms, src, e);
     }
     }
@@ -616,7 +616,7 @@ static int str_gsub (lua_State *L) {
   }
   }
   luaL_addlstring(&b, src, ms.src_end-src);
   luaL_addlstring(&b, src, ms.src_end-src);
   luaL_pushresult(&b);
   luaL_pushresult(&b);
-  lua_pushnumber(L, n);  /* number of substitutions */
+  lua_pushnumber(L, (lua_Number)n);  /* number of substitutions */
   return 2;
   return 2;
 }
 }
 
 

+ 3 - 3
ltable.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: ltable.c,v 1.130 2003/03/20 20:26:33 roberto Exp roberto $
+** $Id: ltable.c,v 1.131 2003/03/24 14:18:42 roberto Exp roberto $
 ** Lua tables (hash)
 ** Lua tables (hash)
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -154,7 +154,7 @@ int luaH_next (lua_State *L, Table *t, StkId key) {
   int i = luaH_index(L, t, key);  /* find original element */
   int i = luaH_index(L, t, key);  /* find original element */
   for (i++; i < t->sizearray; i++) {  /* try first array part */
   for (i++; i < t->sizearray; i++) {  /* try first array part */
     if (!ttisnil(&t->array[i])) {  /* a non-nil value? */
     if (!ttisnil(&t->array[i])) {  /* a non-nil value? */
-      setnvalue(key, i+1);
+      setnvalue(key, cast(lua_Number, i+1));
       setobj2s(key+1, &t->array[i]);
       setobj2s(key+1, &t->array[i]);
       return 1;
       return 1;
     }
     }
@@ -502,7 +502,7 @@ TObject *luaH_setnum (lua_State *L, Table *t, int key) {
     return cast(TObject *, p);
     return cast(TObject *, p);
   else {
   else {
     TObject k;
     TObject k;
-    setnvalue(&k, key);
+    setnvalue(&k, cast(lua_Number, key));
     return newkey(L, t, &k);
     return newkey(L, t, &k);
   }
   }
 }
 }

+ 3 - 3
ltablib.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: ltablib.c,v 1.19 2003/01/27 13:46:16 roberto Exp roberto $
+** $Id: ltablib.c,v 1.20 2003/03/11 12:24:34 roberto Exp roberto $
 ** Library for Table Manipulation
 ** Library for Table Manipulation
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -24,7 +24,7 @@ static int luaB_foreachi (lua_State *L) {
   luaL_checktype(L, 2, LUA_TFUNCTION);
   luaL_checktype(L, 2, LUA_TFUNCTION);
   for (i=1; i<=n; i++) {
   for (i=1; i<=n; i++) {
     lua_pushvalue(L, 2);  /* function */
     lua_pushvalue(L, 2);  /* function */
-    lua_pushnumber(L, i);  /* 1st argument */
+    lua_pushnumber(L, (lua_Number)i);  /* 1st argument */
     lua_rawgeti(L, 1, i);  /* 2nd argument */
     lua_rawgeti(L, 1, i);  /* 2nd argument */
     lua_call(L, 2, 1);
     lua_call(L, 2, 1);
     if (!lua_isnil(L, -1))
     if (!lua_isnil(L, -1))
@@ -54,7 +54,7 @@ static int luaB_foreach (lua_State *L) {
 
 
 
 
 static int luaB_getn (lua_State *L) {
 static int luaB_getn (lua_State *L) {
-  lua_pushnumber(L, aux_getn(L, 1));
+  lua_pushnumber(L, (lua_Number)aux_getn(L, 1));
   return 1;
   return 1;
 }
 }
 
 

+ 45 - 45
ltests.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: ltests.c,v 1.155 2003/03/11 12:24:34 roberto Exp roberto $
+** $Id: ltests.c,v 1.156 2003/03/19 21:14:53 roberto Exp roberto $
 ** Internal Module for Debugging of the Lua Implementation
 ** Internal Module for Debugging of the Lua Implementation
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -36,6 +36,9 @@
 #ifdef LUA_DEBUG
 #ifdef LUA_DEBUG
 
 
 
 
+#define lua_pushintegral(L,i)	lua_pushnumber(L, cast(lua_Number, (i)))
+
+
 static lua_State *lua_state = NULL;
 static lua_State *lua_state = NULL;
 
 
 int islocked = 0;
 int islocked = 0;
@@ -46,7 +49,7 @@ int islocked = 0;
 
 
 static void setnameval (lua_State *L, const char *name, int val) {
 static void setnameval (lua_State *L, const char *name, int val) {
   lua_pushstring(L, name);
   lua_pushstring(L, name);
-  lua_pushnumber(L, val);
+  lua_pushintegral(L, val);
   lua_settable(L, -3);
   lua_settable(L, -3);
 }
 }
 
 
@@ -196,7 +199,7 @@ static int listcode (lua_State *L) {
   setnameval(L, "numparams", p->numparams);
   setnameval(L, "numparams", p->numparams);
   for (pc=0; pc<p->sizecode; pc++) {
   for (pc=0; pc<p->sizecode; pc++) {
     char buff[100];
     char buff[100];
-    lua_pushnumber(L, pc+1);
+    lua_pushintegral(L, pc+1);
     lua_pushstring(L, buildop(p, pc, buff));
     lua_pushstring(L, buildop(p, pc, buff));
     lua_settable(L, -3);
     lua_settable(L, -3);
   }
   }
@@ -212,7 +215,7 @@ static int listk (lua_State *L) {
   p = clvalue(func_at(L, 1))->l.p;
   p = clvalue(func_at(L, 1))->l.p;
   lua_newtable(L);
   lua_newtable(L);
   for (i=0; i<p->sizek; i++) {
   for (i=0; i<p->sizek; i++) {
-    lua_pushnumber(L, i+1);
+    lua_pushintegral(L, i+1);
     luaA_pushobject(L, p->k+i);
     luaA_pushobject(L, p->k+i);
     lua_settable(L, -3);
     lua_settable(L, -3);
   }
   }
@@ -252,9 +255,9 @@ static int get_limits (lua_State *L) {
 
 
 static int mem_query (lua_State *L) {
 static int mem_query (lua_State *L) {
   if (lua_isnone(L, 1)) {
   if (lua_isnone(L, 1)) {
-    lua_pushnumber(L, memdebug_total);
-    lua_pushnumber(L, memdebug_numblocks);
-    lua_pushnumber(L, memdebug_maxmem);
+    lua_pushintegral(L, memdebug_total);
+    lua_pushintegral(L, memdebug_numblocks);
+    lua_pushintegral(L, memdebug_maxmem);
     return 3;
     return 3;
   }
   }
   else {
   else {
@@ -267,14 +270,14 @@ static int mem_query (lua_State *L) {
 static int hash_query (lua_State *L) {
 static int hash_query (lua_State *L) {
   if (lua_isnone(L, 2)) {
   if (lua_isnone(L, 2)) {
     luaL_argcheck(L, lua_type(L, 1) == LUA_TSTRING, 1, "string expected");
     luaL_argcheck(L, lua_type(L, 1) == LUA_TSTRING, 1, "string expected");
-    lua_pushnumber(L, tsvalue(func_at(L, 1))->tsv.hash);
+    lua_pushintegral(L, tsvalue(func_at(L, 1))->tsv.hash);
   }
   }
   else {
   else {
     TObject *o = func_at(L, 1);
     TObject *o = func_at(L, 1);
     Table *t;
     Table *t;
     luaL_checktype(L, 2, LUA_TTABLE);
     luaL_checktype(L, 2, LUA_TTABLE);
     t = hvalue(func_at(L, 2));
     t = hvalue(func_at(L, 2));
-    lua_pushnumber(L, luaH_mainposition(t, o) - t->node);
+    lua_pushintegral(L, luaH_mainposition(t, o) - t->node);
   }
   }
   return 1;
   return 1;
 }
 }
@@ -282,11 +285,11 @@ static int hash_query (lua_State *L) {
 
 
 static int stacklevel (lua_State *L) {
 static int stacklevel (lua_State *L) {
   unsigned long a = 0;
   unsigned long a = 0;
-  lua_pushnumber(L, (int)(L->top - L->stack));
-  lua_pushnumber(L, (int)(L->stack_last - L->stack));
-  lua_pushnumber(L, (int)(L->ci - L->base_ci));
-  lua_pushnumber(L, (int)(L->end_ci - L->base_ci));
-  lua_pushnumber(L, (unsigned long)&a);
+  lua_pushintegral(L, (int)(L->top - L->stack));
+  lua_pushintegral(L, (int)(L->stack_last - L->stack));
+  lua_pushintegral(L, (int)(L->ci - L->base_ci));
+  lua_pushintegral(L, (int)(L->end_ci - L->base_ci));
+  lua_pushintegral(L, (unsigned long)&a);
   return 5;
   return 5;
 }
 }
 
 
@@ -297,12 +300,12 @@ static int table_query (lua_State *L) {
   luaL_checktype(L, 1, LUA_TTABLE);
   luaL_checktype(L, 1, LUA_TTABLE);
   t = hvalue(func_at(L, 1));
   t = hvalue(func_at(L, 1));
   if (i == -1) {
   if (i == -1) {
-    lua_pushnumber(L, t->sizearray);
-    lua_pushnumber(L, sizenode(t));
-    lua_pushnumber(L, t->firstfree - t->node);
+    lua_pushintegral(L, t->sizearray);
+    lua_pushintegral(L, sizenode(t));
+    lua_pushintegral(L, t->firstfree - t->node);
   }
   }
   else if (i < t->sizearray) {
   else if (i < t->sizearray) {
-    lua_pushnumber(L, i);
+    lua_pushintegral(L, i);
     luaA_pushobject(L, &t->array[i]);
     luaA_pushobject(L, &t->array[i]);
     lua_pushnil(L); 
     lua_pushnil(L); 
   }
   }
@@ -316,7 +319,7 @@ static int table_query (lua_State *L) {
       lua_pushstring(L, "<undef>");
       lua_pushstring(L, "<undef>");
     luaA_pushobject(L, gval(gnode(t, i)));
     luaA_pushobject(L, gval(gnode(t, i)));
     if (t->node[i].next)
     if (t->node[i].next)
-      lua_pushnumber(L, t->node[i].next - t->node);
+      lua_pushintegral(L, t->node[i].next - t->node);
     else
     else
       lua_pushnil(L);
       lua_pushnil(L);
   }
   }
@@ -328,8 +331,8 @@ static int string_query (lua_State *L) {
   stringtable *tb = &G(L)->strt;
   stringtable *tb = &G(L)->strt;
   int s = luaL_optint(L, 2, 0) - 1;
   int s = luaL_optint(L, 2, 0) - 1;
   if (s==-1) {
   if (s==-1) {
-    lua_pushnumber(L ,tb->nuse);
-    lua_pushnumber(L ,tb->size);
+    lua_pushintegral(L ,tb->nuse);
+    lua_pushintegral(L ,tb->size);
     return 2;
     return 2;
   }
   }
   else if (s < tb->size) {
   else if (s < tb->size) {
@@ -351,7 +354,7 @@ static int tref (lua_State *L) {
   int lock = luaL_optint(L, 2, 1);
   int lock = luaL_optint(L, 2, 1);
   luaL_checkany(L, 1);
   luaL_checkany(L, 1);
   lua_pushvalue(L, 1);
   lua_pushvalue(L, 1);
-  lua_pushnumber(L, lua_ref(L, lock));
+  lua_pushintegral(L, lua_ref(L, lock));
   assert(lua_gettop(L) == level+1);  /* +1 for result */
   assert(lua_gettop(L) == level+1);  /* +1 for result */
   return 1;
   return 1;
 }
 }
@@ -417,7 +420,7 @@ static int pushuserdata (lua_State *L) {
 
 
 
 
 static int udataval (lua_State *L) {
 static int udataval (lua_State *L) {
-  lua_pushnumber(L, cast(int, lua_touserdata(L, 1)));
+  lua_pushintegral(L, cast(int, lua_touserdata(L, 1)));
   return 1;
   return 1;
 }
 }
 
 
@@ -429,7 +432,7 @@ static int doonnewstack (lua_State *L) {
   int status = luaL_loadbuffer(L1, s, l, s);
   int status = luaL_loadbuffer(L1, s, l, s);
   if (status == 0)
   if (status == 0)
     status = lua_pcall(L1, 0, 0, 0);
     status = lua_pcall(L1, 0, 0, 0);
-  lua_pushnumber(L, status);
+  lua_pushintegral(L, status);
   return 1;
   return 1;
 }
 }
 
 
@@ -450,7 +453,7 @@ static int newstate (lua_State *L) {
   lua_State *L1 = lua_open();
   lua_State *L1 = lua_open();
   if (L1) {
   if (L1) {
     lua_userstateopen(L1);  /* init lock */
     lua_userstateopen(L1);  /* init lock */
-    lua_pushnumber(L, (unsigned long)L1);
+    lua_pushintegral(L, (unsigned long)L1);
   }
   }
   else
   else
     lua_pushnil(L);
     lua_pushnil(L);
@@ -493,7 +496,7 @@ static int doremote (lua_State *L) {
     status = lua_pcall(L1, 0, LUA_MULTRET, 0);
     status = lua_pcall(L1, 0, LUA_MULTRET, 0);
   if (status != 0) {
   if (status != 0) {
     lua_pushnil(L);
     lua_pushnil(L);
-    lua_pushnumber(L, status);
+    lua_pushintegral(L, status);
     lua_pushstring(L, lua_tostring(L1, -1));
     lua_pushstring(L, lua_tostring(L1, -1));
     return 3;
     return 3;
   }
   }
@@ -508,14 +511,14 @@ static int doremote (lua_State *L) {
 
 
 
 
 static int log2_aux (lua_State *L) {
 static int log2_aux (lua_State *L) {
-  lua_pushnumber(L, luaO_log2(luaL_checkint(L, 1)));
+  lua_pushintegral(L, luaO_log2(luaL_checkint(L, 1)));
   return 1;
   return 1;
 }
 }
 
 
 static int int2fb_aux (lua_State *L) {
 static int int2fb_aux (lua_State *L) {
   int b = luaO_int2fb(luaL_checkint(L, 1));
   int b = luaO_int2fb(luaL_checkint(L, 1));
-  lua_pushnumber(L, b);
-  lua_pushnumber(L, fb2int(b));
+  lua_pushintegral(L, b);
+  lua_pushintegral(L, fb2int(b));
   return 2;
   return 2;
 }
 }
 
 
@@ -585,31 +588,31 @@ static int testC (lua_State *L) {
     const char *inst = getname;
     const char *inst = getname;
     if EQ("") return 0;
     if EQ("") return 0;
     else if EQ("isnumber") {
     else if EQ("isnumber") {
-      lua_pushnumber(L, lua_isnumber(L, getnum));
+      lua_pushintegral(L, lua_isnumber(L, getnum));
     }
     }
     else if EQ("isstring") {
     else if EQ("isstring") {
-      lua_pushnumber(L, lua_isstring(L, getnum));
+      lua_pushintegral(L, lua_isstring(L, getnum));
     }
     }
     else if EQ("istable") {
     else if EQ("istable") {
-      lua_pushnumber(L, lua_istable(L, getnum));
+      lua_pushintegral(L, lua_istable(L, getnum));
     }
     }
     else if EQ("iscfunction") {
     else if EQ("iscfunction") {
-      lua_pushnumber(L, lua_iscfunction(L, getnum));
+      lua_pushintegral(L, lua_iscfunction(L, getnum));
     }
     }
     else if EQ("isfunction") {
     else if EQ("isfunction") {
-      lua_pushnumber(L, lua_isfunction(L, getnum));
+      lua_pushintegral(L, lua_isfunction(L, getnum));
     }
     }
     else if EQ("isuserdata") {
     else if EQ("isuserdata") {
-      lua_pushnumber(L, lua_isuserdata(L, getnum));
+      lua_pushintegral(L, lua_isuserdata(L, getnum));
     }
     }
     else if EQ("isudataval") {
     else if EQ("isudataval") {
-      lua_pushnumber(L, lua_islightuserdata(L, getnum));
+      lua_pushintegral(L, lua_islightuserdata(L, getnum));
     }
     }
     else if EQ("isnil") {
     else if EQ("isnil") {
-      lua_pushnumber(L, lua_isnil(L, getnum));
+      lua_pushintegral(L, lua_isnil(L, getnum));
     }
     }
     else if EQ("isnull") {
     else if EQ("isnull") {
-      lua_pushnumber(L, lua_isnone(L, getnum));
+      lua_pushintegral(L, lua_isnone(L, getnum));
     }
     }
     else if EQ("tonumber") {
     else if EQ("tonumber") {
       lua_pushnumber(L, lua_tonumber(L, getnum));
       lua_pushnumber(L, lua_tonumber(L, getnum));
@@ -618,11 +621,8 @@ static int testC (lua_State *L) {
       const char *s = lua_tostring(L, getnum);
       const char *s = lua_tostring(L, getnum);
       lua_pushstring(L, s);
       lua_pushstring(L, s);
     }
     }
-    else if EQ("tonumber") {
-      lua_pushnumber(L, lua_tonumber(L, getnum));
-    }
     else if EQ("strlen") {
     else if EQ("strlen") {
-      lua_pushnumber(L, lua_strlen(L, getnum));
+      lua_pushintegral(L, lua_strlen(L, getnum));
     }
     }
     else if EQ("tocfunction") {
     else if EQ("tocfunction") {
       lua_pushcfunction(L, lua_tocfunction(L, getnum));
       lua_pushcfunction(L, lua_tocfunction(L, getnum));
@@ -631,7 +631,7 @@ static int testC (lua_State *L) {
       return getnum;
       return getnum;
     }
     }
     else if EQ("gettop") {
     else if EQ("gettop") {
-      lua_pushnumber(L, lua_gettop(L));
+      lua_pushintegral(L, lua_gettop(L));
     }
     }
     else if EQ("settop") {
     else if EQ("settop") {
       lua_settop(L, getnum);
       lua_settop(L, getnum);
@@ -640,7 +640,7 @@ static int testC (lua_State *L) {
       lua_pop(L, getnum);
       lua_pop(L, getnum);
     }
     }
     else if EQ("pushnum") {
     else if EQ("pushnum") {
-      lua_pushnumber(L, getnum);
+      lua_pushintegral(L, getnum);
     }
     }
     else if EQ("pushnil") {
     else if EQ("pushnil") {
       lua_pushnil(L);
       lua_pushnil(L);
@@ -649,7 +649,7 @@ static int testC (lua_State *L) {
       lua_pushboolean(L, getnum);
       lua_pushboolean(L, getnum);
     }
     }
     else if EQ("tobool") {
     else if EQ("tobool") {
-      lua_pushnumber(L, lua_toboolean(L, getnum));
+      lua_pushintegral(L, lua_toboolean(L, getnum));
     }
     }
     else if EQ("pushvalue") {
     else if EQ("pushvalue") {
       lua_pushvalue(L, getnum);
       lua_pushvalue(L, getnum);

+ 2 - 2
ltm.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: ltm.c,v 1.104 2002/11/14 11:51:50 roberto Exp roberto $
+** $Id: ltm.c,v 1.105 2002/12/04 17:38:31 roberto Exp roberto $
 ** Tag methods
 ** Tag methods
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -49,7 +49,7 @@ const TObject *luaT_gettm (Table *events, TMS event, TString *ename) {
   const TObject *tm = luaH_getstr(events, ename);
   const TObject *tm = luaH_getstr(events, ename);
   lua_assert(event <= TM_EQ);
   lua_assert(event <= TM_EQ);
   if (ttisnil(tm)) {  /* no tag method? */
   if (ttisnil(tm)) {  /* no tag method? */
-    events->flags |= (1u<<event);  /* cache this fact */
+    events->flags |= cast(lu_byte, 1u<<event);  /* cache this fact */
     return NULL;
     return NULL;
   }
   }
   else return tm;
   else return tm;

+ 2 - 2
lvm.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lvm.c,v 1.282 2003/03/11 12:30:37 roberto Exp roberto $
+** $Id: lvm.c,v 1.283 2003/03/31 13:00:25 roberto Exp roberto $
 ** Lua virtual machine
 ** Lua virtual machine
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -286,7 +286,7 @@ static int luaV_lessequal (lua_State *L, const TObject *l, const TObject *r) {
 
 
 
 
 int luaV_equalval (lua_State *L, const TObject *t1, const TObject *t2) {
 int luaV_equalval (lua_State *L, const TObject *t1, const TObject *t2) {
-  const TObject *tm = NULL;
+  const TObject *tm;
   lua_assert(ttype(t1) == ttype(t2));
   lua_assert(ttype(t1) == ttype(t2));
   switch (ttype(t1)) {
   switch (ttype(t1)) {
     case LUA_TNIL: return 1;
     case LUA_TNIL: return 1;