improved error message [PATCH _55] [RESEND]
Joshua Pritikin [Mon, 22 Feb 1999 11:29:09 +0000 (06:29 -0500)]
Message-ID: <Pine.GSO.4.02.9902221128200.500-100000@eq1062.wks.na.deuba.com>

p4raw-id: //depot/perl@3018

sv.c

diff --git a/sv.c b/sv.c
index acc8ae5..8a0334e 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -2730,6 +2730,14 @@ sv_clear(register SV *sv)
            } while (SvOBJECT(sv) && SvSTASH(sv) != stash);
 
            del_XRV(SvANY(&tmpref));
+
+           if (SvREFCNT(sv)) {
+               if (PL_in_clean_objs)
+                   croak("DESTROY created new reference to dead object '%s'",
+                         HvNAME(stash));
+               /* DESTROY gave object new lease on life */
+               return;
+           }
        }
 
        if (SvOBJECT(sv)) {
@@ -2738,12 +2746,6 @@ sv_clear(register SV *sv)
            if (SvTYPE(sv) != SVt_PVIO)
                --PL_sv_objcount;       /* XXX Might want something more general */
        }
-       if (SvREFCNT(sv)) {
-               if (PL_in_clean_objs)
-                   croak("DESTROY created new reference to dead object");
-               /* DESTROY gave object new lease on life */
-               return;
-       }
     }
     if (SvTYPE(sv) >= SVt_PVMG && SvMAGIC(sv))
        mg_free(sv);