Change 18693 by merijn@merijn-l1 on 2003/02/11 08:14:29

        More code cleanup.
        
        Subject: Re: New SV Flag
        Date: Fri, 07 Feb 2003 09:57:43 +0100
        From: "H.Merijn Brand" <[EMAIL PROTECTED]>
        Message-Id: <[EMAIL PROTECTED]>

Affected files ...

... //depot/perl/sv.c#626 edit
... //depot/perl/sv.h#134 edit

Differences ...

==== //depot/perl/sv.c#626 (text) ====
Index: perl/sv.c
--- perl/sv.c#625~18691~        Mon Feb 10 16:27:56 2003
+++ perl/sv.c   Tue Feb 11 00:14:29 2003
@@ -5398,7 +5398,7 @@
 Perl_sv_newref(pTHX_ SV *sv)
 {
     if (sv)
-       ATOMIC_INC(SvREFCNT(sv));
+       (SvREFCNT(sv))++;
     return sv;
 }
 
@@ -5416,8 +5416,6 @@
 void
 Perl_sv_free(pTHX_ SV *sv)
 {
-    int refcount_is_zero;
-
     if (!sv)
        return;
     if (SvREFCNT(sv) == 0) {
@@ -5436,8 +5434,7 @@
            Perl_warner(aTHX_ packWARN(WARN_INTERNAL), "Attempt to free unreferenced 
scalar");
        return;
     }
-    ATOMIC_DEC_AND_TEST(refcount_is_zero, SvREFCNT(sv));
-    if (!refcount_is_zero)
+    if (--(SvREFCNT(sv)) > 0)
        return;
 #ifdef DEBUGGING
     if (SvTEMP(sv)) {

==== //depot/perl/sv.h#134 (text) ====
Index: perl/sv.h
--- perl/sv.h#133~18595~        Mon Jan 27 12:32:01 2003
+++ perl/sv.h   Tue Feb 11 00:14:29 2003
@@ -125,20 +125,17 @@
 #define SvFLAGS(sv)    (sv)->sv_flags
 #define SvREFCNT(sv)   (sv)->sv_refcnt
 
-#define ATOMIC_INC(count) (++count)
-#define ATOMIC_DEC_AND_TEST(res, count) (res = (--count == 0))
-
 #if defined(__GNUC__) && !defined(__STRICT_ANSI__) && !defined(PERL_GCC_PEDANTIC)
 #  define SvREFCNT_inc(sv)             \
     ({                                 \
        SV *nsv = (SV*)(sv);            \
        if (nsv)                        \
-            ATOMIC_INC(SvREFCNT(nsv)); \
+            (SvREFCNT(nsv))++;         \
        nsv;                            \
     })
 #else
 #  define SvREFCNT_inc(sv)     \
-       ((PL_Sv=(SV*)(sv)), (PL_Sv && ATOMIC_INC(SvREFCNT(PL_Sv))), (SV*)PL_Sv)
+       ((PL_Sv=(SV*)(sv)), (PL_Sv && ++(SvREFCNT(PL_Sv))), (SV*)PL_Sv)
 #endif
 
 #define SvREFCNT_dec(sv)       sv_free((SV*)(sv))
End of Patch.

Reply via email to