From 9ad5272ed640d1fa441b7529e59270b43ebd641e Mon Sep 17 00:00:00 2001 From: Xurkon Date: Wed, 18 Mar 2026 22:18:14 -0500 Subject: [PATCH] fix: correctly detect legacy xpcall dropping varargs --- Modules/QuestieCompat.lua | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Modules/QuestieCompat.lua b/Modules/QuestieCompat.lua index a69c06f..fea2b0a 100644 --- a/Modules/QuestieCompat.lua +++ b/Modules/QuestieCompat.lua @@ -16,11 +16,9 @@ end -- Modern Ace3 uses xpcall(func, err, ...) which drops arguments on legacy clients, -- leading to 'self' being nil in addon callbacks. local _xpcall = xpcall -local _pcall = pcall -local _unpack = unpack -local xpcall_supported = _pcall(function() - -- This will error on 1.12/3.3.5 where xpcall only takes 2 arguments. - _xpcall(function(a) return a end, function() end, 1) +local xpcall_supported = false +pcall(function() + _xpcall(function(a) if a == 1 then xpcall_supported = true end end, function() end, 1) end) if not xpcall_supported then