################################################################################
##
-## $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.
##
#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) \
#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) \
#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) \
# 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 $_);
}
-