fix: correctly detect legacy xpcall dropping varargs
This commit is contained in:
@@ -16,11 +16,9 @@ end
|
|||||||
-- Modern Ace3 uses xpcall(func, err, ...) which drops arguments on legacy clients,
|
-- Modern Ace3 uses xpcall(func, err, ...) which drops arguments on legacy clients,
|
||||||
-- leading to 'self' being nil in addon callbacks.
|
-- leading to 'self' being nil in addon callbacks.
|
||||||
local _xpcall = xpcall
|
local _xpcall = xpcall
|
||||||
local _pcall = pcall
|
local xpcall_supported = false
|
||||||
local _unpack = unpack
|
pcall(function()
|
||||||
local xpcall_supported = _pcall(function()
|
_xpcall(function(a) if a == 1 then xpcall_supported = true end end, function() end, 1)
|
||||||
-- This will error on 1.12/3.3.5 where xpcall only takes 2 arguments.
|
|
||||||
_xpcall(function(a) return a end, function() end, 1)
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
if not xpcall_supported then
|
if not xpcall_supported then
|
||||||
|
|||||||
Reference in New Issue
Block a user