lunpack optimize, do not unpack twice if r <= osz

This commit is contained in:
sanikoyes
2015-07-09 18:07:32 +08:00
parent 86bbc9c701
commit ea2437e138

View File

@@ -487,10 +487,10 @@ lunpack(lua_State *L) {
return luaL_error(L, "Invalid unpack stream"); return luaL_error(L, "Invalid unpack stream");
if (r > osz) { if (r > osz) {
output = expand_buffer(L, osz, r); output = expand_buffer(L, osz, r);
r = sproto_unpack(buffer, sz, output, r);
if (r < 0)
return luaL_error(L, "Invalid unpack stream");
} }
r = sproto_unpack(buffer, sz, output, r);
if (r < 0)
return luaL_error(L, "Invalid unpack stream");
lua_pushlstring(L, output, r); lua_pushlstring(L, output, r);
return 1; return 1;
} }