From ea2437e138a92a0182f19a3e88c431cf2a985c5b Mon Sep 17 00:00:00 2001 From: sanikoyes Date: Thu, 9 Jul 2015 18:07:32 +0800 Subject: [PATCH] lunpack optimize, do not unpack twice if r <= osz --- lualib-src/sproto/lsproto.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lualib-src/sproto/lsproto.c b/lualib-src/sproto/lsproto.c index 50a05f67..16eaa022 100644 --- a/lualib-src/sproto/lsproto.c +++ b/lualib-src/sproto/lsproto.c @@ -487,10 +487,10 @@ lunpack(lua_State *L) { return luaL_error(L, "Invalid unpack stream"); if (r > osz) { 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); return 1; }