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.