* libs/core: Adapted luci.util.strip_bytecode to handle lnum-bytecode correctly
authorSteven Barth <steven@midlink.org>
Sun, 1 Jun 2008 14:54:58 +0000 (14:54 +0000)
committerSteven Barth <steven@midlink.org>
Sun, 1 Jun 2008 14:54:58 +0000 (14:54 +0000)
libs/core/luasrc/util.lua

index d79f93b1d4d684dc218e9084e8e2720b0ea9ed41..cc8e7a70bc5e5584d81d56a5d9e3c6ed30b63bb1 100644 (file)
@@ -189,9 +189,10 @@ function split(str, pat, max, regex)
 end
 
 
--- Bytecode stripping function by Peter Cawley from http://lua-users.org/lists/lua-l/2008-02/msg01158.html
+-- Strips lua bytecode
+-- Original version by Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html)
 function strip_bytecode(dump)
-       local version, format, endian, int, size, ins, num = dump:byte(5, 11)
+       local version, format, endian, int, size, ins, num, lnum = dump:byte(5, 12)
        local subint
        if endian == 1 then
                subint = function(dump, i, l)
@@ -227,6 +228,8 @@ function strip_bytecode(dump)
                                offset = offset + size + subint(dump, offset, size)
                        elseif t == 3 then
                                offset = offset + num
+                       elseif t == 254 then
+                               offset = offset + lnum
                        end
                end
                count, offset = subint(dump, offset, int)