From d263c0173f6ababa6791fd24914c3a92725ce5f0 Mon Sep 17 00:00:00 2001 From: David Mitchell Date: Fri, 28 Feb 2014 17:51:47 +0000 Subject: [PATCH] SAVEt_CLEARSV: simplify SvREADONLY_off() condition 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(). --- scope.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scope.c b/scope.c index 4361455..23ade78 100644 --- a/scope.c +++ b/scope.c @@ -1036,6 +1036,8 @@ Perl_leave_scope(pTHX_ I32 base) (SvREFCNT(sv) <= 1 && !SvOBJECT(sv)) ? "clear" : "abandon" )); + assert(SvPADMY(sv)); + /* Can clear pad variable in place? */ if (SvREFCNT(sv) <= 1 && !SvOBJECT(sv)) { @@ -1056,7 +1058,7 @@ Perl_leave_scope(pTHX_ I32 base) * 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)) { -- 2.7.4