Explorar el Código

fix:int和size_t不能直接比较大小

alienwalker hace 3 años
padre
commit
7856c3b17c
Se han modificado 1 ficheros con 4 adiciones y 2 borrados
  1. 4 2
      luat/modules/luat_lib_zbuff.c

+ 4 - 2
luat/modules/luat_lib_zbuff.c

@@ -1145,8 +1145,6 @@ static int l_zbuff_del(lua_State *L)
 {
 {
     luat_zbuff_t *buff = tozbuff(L);
     luat_zbuff_t *buff = tozbuff(L);
     int start = luaL_optinteger(L, 2, 0);
     int start = luaL_optinteger(L, 2, 0);
-    if (start >= buff->used)
-        return 0;
     if (start < 0)
     if (start < 0)
     {
     {
     	start += buff->used;
     	start += buff->used;
@@ -1155,6 +1153,10 @@ static int l_zbuff_del(lua_State *L)
     		return 0;
     		return 0;
     	}
     	}
     }
     }
+
+    if (start >= (int)buff->used)
+        return 0;
+
     uint32_t len = luaL_optinteger(L, 3, buff->used);
     uint32_t len = luaL_optinteger(L, 3, buff->used);
     if (start + len > buff->used)
     if (start + len > buff->used)
         len = buff->used - start;
         len = buff->used - start;