SAVEt_CLEARSV should always be called with SvPADMY() true, so don't test
for it, but assert it instead. Then change this:
if (SvPADMY(sv) && !SvFAKE(sv))
SvREADONLY_off(sv);
The SvPADMY() isn't needed, but we should test for RO-ness instead, to
avoid an unnecessary SvREADONLY_off().
(SvREFCNT(sv) <= 1 && !SvOBJECT(sv)) ? "clear" : "abandon"
));
+ assert(SvPADMY(sv));
+
/* Can clear pad variable in place? */
if (SvREFCNT(sv) <= 1 && !SvOBJECT(sv)) {
* readonlyness so that it can go out of scope
* quietly
*/
- if (SvPADMY(sv) && !SvFAKE(sv))
+ if (SvREADONLY(sv) && !SvFAKE(sv))
SvREADONLY_off(sv);
if (SvMAGICAL(sv)) {