Blame parts/inc/newRV

Packit 7d6a7d
################################################################################
Packit 7d6a7d
##
Packit 7d6a7d
##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
Packit 7d6a7d
##  Version 2.x, Copyright (C) 2001, Paul Marquess.
Packit 7d6a7d
##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
Packit 7d6a7d
##
Packit 7d6a7d
##  This program is free software; you can redistribute it and/or
Packit 7d6a7d
##  modify it under the same terms as Perl itself.
Packit 7d6a7d
##
Packit 7d6a7d
################################################################################
Packit 7d6a7d
Packit 7d6a7d
=provides
Packit 7d6a7d
Packit 7d6a7d
newRV_inc
Packit 7d6a7d
newRV_noinc
Packit 7d6a7d
Packit 7d6a7d
=implementation
Packit 7d6a7d
Packit 7d6a7d
__UNDEFINED__  newRV_inc(sv)  newRV(sv)   /* Replace */
Packit 7d6a7d
Packit 7d6a7d
#ifndef newRV_noinc
Packit 7d6a7d
#if { NEED newRV_noinc }
Packit 7d6a7d
SV *
Packit 7d6a7d
newRV_noinc(SV *sv)
Packit 7d6a7d
{
Packit 7d6a7d
  SV *rv = (SV *)newRV(sv);
Packit 7d6a7d
  SvREFCNT_dec(sv);
Packit 7d6a7d
  return rv;
Packit 7d6a7d
}
Packit 7d6a7d
#endif
Packit 7d6a7d
#endif
Packit 7d6a7d
Packit 7d6a7d
=xsinit
Packit 7d6a7d
Packit 7d6a7d
#define NEED_newRV_noinc
Packit 7d6a7d
Packit 7d6a7d
=xsubs
Packit 7d6a7d
Packit 7d6a7d
U32
Packit 7d6a7d
newRV_inc_REFCNT()
Packit 7d6a7d
        PREINIT:
Packit 7d6a7d
                SV *sv, *rv;
Packit 7d6a7d
        CODE:
Packit 7d6a7d
                sv = newSViv(42);
Packit 7d6a7d
                rv = newRV_inc(sv);
Packit 7d6a7d
                SvREFCNT_dec(sv);
Packit 7d6a7d
                RETVAL = SvREFCNT(sv);
Packit 7d6a7d
                sv_2mortal(rv);
Packit 7d6a7d
        OUTPUT:
Packit 7d6a7d
                RETVAL
Packit 7d6a7d
Packit 7d6a7d
U32
Packit 7d6a7d
newRV_noinc_REFCNT()
Packit 7d6a7d
        PREINIT:
Packit 7d6a7d
                SV *sv, *rv;
Packit 7d6a7d
        CODE:
Packit 7d6a7d
                sv = newSViv(42);
Packit 7d6a7d
                rv = newRV_noinc(sv);
Packit 7d6a7d
                RETVAL = SvREFCNT(sv);
Packit 7d6a7d
                sv_2mortal(rv);
Packit 7d6a7d
        OUTPUT:
Packit 7d6a7d
                RETVAL
Packit 7d6a7d
Packit 7d6a7d
=tests plan => 2
Packit 7d6a7d
Packit 7d6a7d
ok(&Devel::PPPort::newRV_inc_REFCNT, 1);
Packit 7d6a7d
ok(&Devel::PPPort::newRV_noinc_REFCNT, 1);