This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Devel-PPPort to CPAN version 3.21
[perl5.git] / cpan / Devel-PPPort / parts / inc / SvREFCNT
index 3a2f849..422aa58 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 6 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:45 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -27,26 +21,26 @@ __UNDEFINED__
 
 #ifndef SvREFCNT_inc
 #  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc(sv)           \
-      ({                               \
-          SV * const _sv = (SV*)(sv);  \
-          if (_sv)                     \
-               (SvREFCNT(_sv))++;      \
-          _sv;                         \
+#    define SvREFCNT_inc(sv)            \
+      ({                                \
+          SV * const _sv = (SV*)(sv);   \
+          if (_sv)                      \
+               (SvREFCNT(_sv))++;       \
+          _sv;                          \
       })
 #  else
-#    define SvREFCNT_inc(sv)   \
+#    define SvREFCNT_inc(sv)    \
           ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL)
 #  endif
 #endif
 
 #ifndef SvREFCNT_inc_simple
 #  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc_simple(sv)    \
-      ({                                       \
-          if (sv)                              \
-               (SvREFCNT(sv))++;               \
-          (SV *)(sv);                          \
+#    define SvREFCNT_inc_simple(sv)     \
+      ({                                        \
+          if (sv)                               \
+               (SvREFCNT(sv))++;                \
+          (SV *)(sv);                           \
       })
 #  else
 #    define SvREFCNT_inc_simple(sv) \
@@ -56,11 +50,11 @@ __UNDEFINED__
 
 #ifndef SvREFCNT_inc_NN
 #  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc_NN(sv)                \
-      ({                                       \
-          SV * const _sv = (SV*)(sv);  \
-          SvREFCNT(_sv)++;             \
-          _sv;                         \
+#    define SvREFCNT_inc_NN(sv)         \
+      ({                                        \
+          SV * const _sv = (SV*)(sv);   \
+          SvREFCNT(_sv)++;              \
+          _sv;                          \
       })
 #  else
 #    define SvREFCNT_inc_NN(sv) \
@@ -70,11 +64,11 @@ __UNDEFINED__
 
 #ifndef SvREFCNT_inc_void
 #  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc_void(sv)              \
-      ({                                       \
-          SV * const _sv = (SV*)(sv);  \
-          if (_sv)                     \
-              (void)(SvREFCNT(_sv)++); \
+#    define SvREFCNT_inc_void(sv)               \
+      ({                                        \
+          SV * const _sv = (SV*)(sv);   \
+          if (_sv)                      \
+              (void)(SvREFCNT(_sv)++);  \
       })
 #  else
 #    define SvREFCNT_inc_void(sv) \
@@ -82,49 +76,48 @@ __UNDEFINED__
 #  endif
 #endif
 
-__UNDEFINED__  SvREFCNT_inc_simple_void(sv)    STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END
-__UNDEFINED__  SvREFCNT_inc_simple_NN(sv)      (++SvREFCNT(sv), (SV*)(sv))
-__UNDEFINED__  SvREFCNT_inc_void_NN(sv)                (void)(++SvREFCNT((SV*)(sv)))
-__UNDEFINED__  SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv)))
+__UNDEFINED__  SvREFCNT_inc_simple_void(sv)     STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END
+__UNDEFINED__  SvREFCNT_inc_simple_NN(sv)       (++SvREFCNT(sv), (SV*)(sv))
+__UNDEFINED__  SvREFCNT_inc_void_NN(sv)         (void)(++SvREFCNT((SV*)(sv)))
+__UNDEFINED__  SvREFCNT_inc_simple_void_NN(sv)  (void)(++SvREFCNT((SV*)(sv)))
 
 =xsubs
 
 void
 SvREFCNT()
-       PREINIT:
-               SV *sv, *svr;
-       PPCODE:
-               sv = newSV(0);
-               mXPUSHi(SvREFCNT(sv) == 1);
-               svr = SvREFCNT_inc(sv);
-               mXPUSHi(sv == svr);
-               mXPUSHi(SvREFCNT(sv) == 2);
-               svr = SvREFCNT_inc_simple(sv);
-               mXPUSHi(sv == svr);
-               mXPUSHi(SvREFCNT(sv) == 3);
-               svr = SvREFCNT_inc_NN(sv);
-               mXPUSHi(sv == svr);
-               mXPUSHi(SvREFCNT(sv) == 4);
-               svr = SvREFCNT_inc_simple_NN(sv);
-               mXPUSHi(sv == svr);
-               mXPUSHi(SvREFCNT(sv) == 5);
-               SvREFCNT_inc_void(sv);
-               mXPUSHi(SvREFCNT(sv) == 6);
-               SvREFCNT_inc_simple_void(sv);
-               mXPUSHi(SvREFCNT(sv) == 7);
-               SvREFCNT_inc_void_NN(sv);
-               mXPUSHi(SvREFCNT(sv) == 8);
-               SvREFCNT_inc_simple_void_NN(sv);
-               mXPUSHi(SvREFCNT(sv) == 9);
-               while (SvREFCNT(sv) > 1)
-                 SvREFCNT_dec(sv);
-               mXPUSHi(SvREFCNT(sv) == 1);
-               SvREFCNT_dec(sv);
-               XSRETURN(14);
+        PREINIT:
+                SV *sv, *svr;
+        PPCODE:
+                sv = newSV(0);
+                mXPUSHi(SvREFCNT(sv) == 1);
+                svr = SvREFCNT_inc(sv);
+                mXPUSHi(sv == svr);
+                mXPUSHi(SvREFCNT(sv) == 2);
+                svr = SvREFCNT_inc_simple(sv);
+                mXPUSHi(sv == svr);
+                mXPUSHi(SvREFCNT(sv) == 3);
+                svr = SvREFCNT_inc_NN(sv);
+                mXPUSHi(sv == svr);
+                mXPUSHi(SvREFCNT(sv) == 4);
+                svr = SvREFCNT_inc_simple_NN(sv);
+                mXPUSHi(sv == svr);
+                mXPUSHi(SvREFCNT(sv) == 5);
+                SvREFCNT_inc_void(sv);
+                mXPUSHi(SvREFCNT(sv) == 6);
+                SvREFCNT_inc_simple_void(sv);
+                mXPUSHi(SvREFCNT(sv) == 7);
+                SvREFCNT_inc_void_NN(sv);
+                mXPUSHi(SvREFCNT(sv) == 8);
+                SvREFCNT_inc_simple_void_NN(sv);
+                mXPUSHi(SvREFCNT(sv) == 9);
+                while (SvREFCNT(sv) > 1)
+                  SvREFCNT_dec(sv);
+                mXPUSHi(SvREFCNT(sv) == 1);
+                SvREFCNT_dec(sv);
+                XSRETURN(14);
 
 =tests plan => 14
 
 for (Devel::PPPort::SvREFCNT()) {
   ok(defined $_ and $_);
 }
-