Browse Source

Fix narrowing casts of pointer differences for x64.

Mike Pall 16 years ago
parent
commit
52eb88773e
3 changed files with 4 additions and 4 deletions
  1. 1 1
      src/lib_base.c
  2. 2 2
      src/lib_io.c
  3. 1 1
      src/lj_err.c

+ 1 - 1
src/lib_base.c

@@ -337,7 +337,7 @@ LJLIB_CF(dofile)
   if (luaL_loadfile(L, fname ? strdata(fname) : NULL) != 0)
     lua_error(L);
   lua_call(L, 0, LUA_MULTRET);
-  return (L->top - L->base) - 1;
+  return cast_int(L->top - L->base) - 1;
 }
 
 /* -- Base library: GC control -------------------------------------------- */

+ 2 - 2
src/lib_io.c

@@ -194,7 +194,7 @@ static int io_file_readchars(lua_State *L, FILE *fp, size_t n)
 
 static int io_file_read(lua_State *L, FILE *fp, int start)
 {
-  int ok, n, nargs = (L->top - L->base) - start;
+  int ok, n, nargs = cast_int(L->top - L->base) - start;
   clearerr(fp);
   if (nargs == 0) {
     ok = io_file_readline(L, fp);
@@ -242,7 +242,7 @@ static int io_file_write(lua_State *L, FILE *fp, int start)
     } else if (tvisnum(tv)) {
       status = status && (fprintf(fp, LUA_NUMBER_FMT, numV(tv)) > 0);
     } else {
-      lj_lib_checkstr(L, tv-L->base+1);
+      lj_err_argt(L, cast_int(tv - L->base) + 1, LUA_TSTRING);
     }
   }
   return io_pushresult(L, status, NULL);

+ 1 - 1
src/lj_err.c

@@ -677,7 +677,7 @@ LJ_NORET LJ_NOINLINE static void err_argmsg(lua_State *L, int narg,
   const char *fname = "?";
   const char *ftype = getfuncname(L, L->base - 1, &fname);
   if (narg < 0 && narg > LUA_REGISTRYINDEX)
-    narg = (L->top - L->base) + narg + 1;
+    narg = cast_int(L->top - L->base) + narg + 1;
   if (ftype && ftype[3] == 'h' && --narg == 0)  /* Check for "method". */
     msg = lj_str_pushf(L, err2msg(LJ_ERR_BADSELF), fname, msg);
   else