blob: 3d0a2d25ad98fcb86c8da6cd4658d88a19d8f5f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
################################################################################
##
## $Revision: 10 $
## $Author: mhx $
## $Date: 2010/03/07 13:15:48 +0100 $
##
################################################################################
##
## Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
## Version 2.x, Copyright (C) 2001, Paul Marquess.
## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
##
## This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself.
##
################################################################################
=provides
newRV_inc
newRV_noinc
=implementation
__UNDEFINED__ newRV_inc(sv) newRV(sv) /* Replace */
#ifndef newRV_noinc
#if { NEED newRV_noinc }
SV *
newRV_noinc(SV *sv)
{
SV *rv = (SV *)newRV(sv);
SvREFCNT_dec(sv);
return rv;
}
#endif
#endif
=xsinit
#define NEED_newRV_noinc
=xsubs
U32
newRV_inc_REFCNT()
PREINIT:
SV *sv, *rv;
CODE:
sv = newSViv(42);
rv = newRV_inc(sv);
SvREFCNT_dec(sv);
RETVAL = SvREFCNT(sv);
sv_2mortal(rv);
OUTPUT:
RETVAL
U32
newRV_noinc_REFCNT()
PREINIT:
SV *sv, *rv;
CODE:
sv = newSViv(42);
rv = newRV_noinc(sv);
RETVAL = SvREFCNT(sv);
sv_2mortal(rv);
OUTPUT:
RETVAL
=tests plan => 2
ok(&Devel::PPPort::newRV_inc_REFCNT, 1);
ok(&Devel::PPPort::newRV_noinc_REFCNT, 1);
|