libs/core: restore original implementation of copcall() and coxpcall(), solves issues...
authorJo-Philipp Wich <jow@openwrt.org>
Tue, 9 Nov 2010 19:43:13 +0000 (19:43 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Tue, 9 Nov 2010 19:43:13 +0000 (19:43 +0000)
libs/core/luasrc/util.lua

index a248026f10357d54f04ab4ff0969787ba90dc2df..79efa55457650afe97f24c6b614dd3df751d5bc2 100644 (file)
@@ -787,19 +787,19 @@ function copcall(f, ...)
 end
 
 -- Handle return value of protected call
-function handleReturnValue(err, co, status, arg1, arg2, arg3, arg4, arg5)
+function handleReturnValue(err, co, status, ...)
        if not status then
-               return false, err(debug.traceback(co, arg1), arg1, arg2, arg3, arg4, arg5)
+               return false, err(debug.traceback(co, (...)), ...)
        end
 
        if coroutine.status(co) ~= 'suspended' then
-               return true, arg1, arg2, arg3, arg4, arg5
+               return true, ...
        end
 
-       return performResume(err, co, coroutine.yield(arg1, arg2, arg3, arg4, arg5))
+       return performResume(err, co, coroutine.yield(...))
 end
 
 -- Resume execution of protected function call
-function performResume(err, co, arg1, arg2, arg3, arg4, arg5)
-       return handleReturnValue(err, co, coroutine.resume(co, arg1, arg2, arg3, arg4, arg5))
+function performResume(err, co, ...)
+       return handleReturnValue(err, co, coroutine.resume(co, ...))
 end