Update Changes.
[p5sagit/p5-mst-13.2.git] / scope.c
diff --git a/scope.c b/scope.c
index 0713fa7..f0efaf8 100644 (file)
--- a/scope.c
+++ b/scope.c
@@ -1,6 +1,6 @@
 /*    scope.c
  *
- *    Copyright (c) 1991-2000, Larry Wall
+ *    Copyright (c) 1991-2001, Larry Wall
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -809,7 +809,7 @@ Perl_leave_scope(pTHX_ I32 base)
            /* Can clear pad variable in place? */
            if (SvREFCNT(sv) <= 1 && !SvOBJECT(sv)) {
                if (SvTHINKFIRST(sv))
-                   sv_force_normal(sv);
+                   sv_force_normal_flags(sv, SV_IMMEDIATE_UNREF);
                if (SvMAGICAL(sv))
                    mg_free(sv);
 
@@ -852,7 +852,7 @@ Perl_leave_scope(pTHX_ I32 base)
            ptr = SSPOPPTR;
            (void)hv_delete(hv, (char*)ptr, (U32)SSPOPINT, G_DISCARD);
            SvREFCNT_dec(hv);
-           Safefree(ptr);
+           Safefree(ptr); 
            break;
        case SAVEt_DESTRUCTOR:
            ptr = SSPOPPTR;
@@ -912,10 +912,6 @@ Perl_leave_scope(pTHX_ I32 base)
            PL_op = (OP*)SSPOPPTR;
            break;
        case SAVEt_HINTS:
-           if (GvHV(PL_hintgv)) {
-               SvREFCNT_dec((SV*)GvHV(PL_hintgv));
-               GvHV(PL_hintgv) = NULL;
-           }
            *(I32*)&PL_hints = (I32)SSPOPINT;
            break;
        case SAVEt_COMPPAD: