Upgrade to I18N::LangTags 0.30.
[p5sagit/p5-mst-13.2.git] / scope.c
diff --git a/scope.c b/scope.c
index 86587e3..452ea77 100644 (file)
--- a/scope.c
+++ b/scope.c
@@ -217,8 +217,8 @@ S_save_scalar_at(pTHX_ SV **sptr)
        /* if it's a special scalar or if it has no 'set' magic,
         * propagate the SvREADONLY flag. --rgs 20030922 */
        for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) {
-           if (SvMAGIC(sv)->mg_type == '\0'
-                   || !SvMAGIC(sv)->mg_virtual->svt_set)
+           if (mg->mg_type == '\0'
+                   || !(mg->mg_virtual && mg->mg_virtual->svt_set))
            {
                SvFLAGS(sv) |= SvREADONLY(osv);
                break;
@@ -1042,6 +1042,11 @@ Perl_leave_scope(pTHX_ I32 base)
                GvHV(PL_hintgv) = NULL;
            }
            *(I32*)&PL_hints = (I32)SSPOPINT;
+           if (PL_hints & HINT_LOCALIZE_HH) {
+               SvREFCNT_dec((SV*)GvHV(PL_hintgv));
+               GvHV(PL_hintgv) = (HV*)SSPOPPTR;
+           }
+                   
            break;
        case SAVEt_COMPPAD:
            PL_comppad = (PAD*)SSPOPPTR;