diff options
Diffstat (limited to 'main/lua-stringy/0001-use-memcmp-for-startswith-endswith.patch')
-rw-r--r-- | main/lua-stringy/0001-use-memcmp-for-startswith-endswith.patch | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/main/lua-stringy/0001-use-memcmp-for-startswith-endswith.patch b/main/lua-stringy/0001-use-memcmp-for-startswith-endswith.patch deleted file mode 100644 index 4680a05615..0000000000 --- a/main/lua-stringy/0001-use-memcmp-for-startswith-endswith.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 86e4e9d16befd02230a699f045afdd68a47f6122 Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Wed, 12 Oct 2011 20:57:55 +0200 -Subject: [PATCH] use memcmp for startswith/endswith - -This fixes an uninitialized variable bug and should be faster since -most libc has optimized memcmp() - -Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> ---- - stringy/stringy.c | 43 +++++++++++++------------------------------ - 1 files changed, 13 insertions(+), 30 deletions(-) - -diff --git a/stringy/stringy.c b/stringy/stringy.c -index 3341b87..aa9a2a2 100644 ---- a/stringy/stringy.c -+++ b/stringy/stringy.c -@@ -65,44 +65,27 @@ static int endswith(lua_State *L) { - - size_t token_len; - const char *token = luaL_checklstring(L, 2, &token_len); -+ int end = 0; - -- int ti = token_len, si = string_len, end = 1; -- if(token_len <= string_len){ -- while(ti > 0) { -- if(string[--si] != token[--ti]){ -- end = 0; -- break; -- -- } -- } -- } -- else { -- end = 0; -+ if(token_len <= string_len) { -+ string += string_len - token_len; -+ end = memcmp(string, token, token_len) == 0; - } - lua_pushboolean(L, end); - return 1; - } - - static int startswith(lua_State *L) { -- const char *string = luaL_checkstring(L, 1); -- int string_len = lua_objlen(L, 1); -+ size_t string_len; -+ const char *string = luaL_checklstring(L, 1, &string_len); -+ -+ size_t token_len; -+ const char *token = luaL_checklstring(L, 2, &token_len); -+ int start = 0; -+ -+ if (token_len <= string_len) -+ start = memcmp(string, token, token_len) == 0; - -- const char *token = luaL_checkstring(L, 2); -- int token_len = lua_objlen(L, 2); -- int i, start = 1; -- // please make this less ugly... -- if(token_len <= string_len){ -- while(i < token_len) { -- if(string[i] != token[i]){ -- start = 0; -- break; -- } -- i++; -- } -- } -- else { -- start = 0; -- } - lua_pushboolean(L, start); - return 1; - } --- -1.7.7 - |