Subject: | magic flags wrong in _dispel_magic |
Date: | Thu, 7 Apr 2011 00:46:45 +0100 |
To: | bug-Set-Object [...] rt.cpan.org |
From: | Dave Mitchell <davem [...] iabyn.com> |
Set::Object 1.28 has a bug in _dispel_magic(): it uses the
wrong macro to remove magic flag(s) and instead turns off overloading.
The following diff fixes it:
--- Object.xs- 2011-04-06 22:29:22.122508711 +0100
+++ Object.xs 2011-04-06 22:29:25.890719219 +0100
@@ -370,7 +370,7 @@ _dispel_magic(ISET* s, SV* sv) {
SvMAGIC(sv) = mg->mg_moremagic;
} else {
SvMAGIC(sv) = 0;
- SvAMAGIC_off(sv);
+ SvMAGICAL_off(sv);
}
}
last=mg;
Note that this caused it to fail on debugging builds of bleadperl
from 5.13.9 onwards, but won't fail in 5.14 due to a fix I pushed to
blead today: 150b625d31233719d0d078c7d9ebe5ac46a6c4da
--
Indomitable in retreat, invincible in advance, insufferable in victory
-- Churchill on Montgomery