1################################################################################ 2## 3## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz. 4## Version 2.x, Copyright (C) 2001, Paul Marquess. 5## Version 1.x, Copyright (C) 1999, Kenneth Albanowski. 6## 7## This program is free software; you can redistribute it and/or 8## modify it under the same terms as Perl itself. 9## 10################################################################################ 11 12=provides 13 14newSV_type 15 16=implementation 17 18#ifndef newSV_type 19#if defined(PERL_USE_GCC_BRACE_GROUPS) 20# define newSV_type(t) ({ SV *_sv = newSV(0); sv_upgrade(_sv, (t)); _sv; }) 21#else 22# define newSV_type(t) ((PL_Sv = newSV(0)), sv_upgrade(PL_Sv, (t)), PL_Sv) 23#endif 24#endif 25 26=xsubs 27 28int 29newSV_type() 30 PREINIT: 31 SV* sv; 32 CODE: 33 RETVAL = 0; 34 sv = newSV_type(SVt_NULL); 35 if (SvTYPE(sv) == SVt_NULL) 36 { 37 RETVAL++; 38 } 39 SvREFCNT_dec(sv); 40 41 sv = newSV_type(SVt_PVIV); 42 if (SvTYPE(sv) == SVt_PVIV) 43 { 44 RETVAL++; 45 } 46 SvREFCNT_dec(sv); 47 48 sv = newSV_type(SVt_PVHV); 49 if (SvTYPE(sv) == SVt_PVHV) 50 { 51 RETVAL++; 52 } 53 SvREFCNT_dec(sv); 54 55 sv = newSV_type(SVt_PVAV); 56 if (SvTYPE(sv) == SVt_PVAV) 57 { 58 RETVAL++; 59 } 60 SvREFCNT_dec(sv); 61 OUTPUT: 62 RETVAL 63 64 65=tests plan => 1 66 67is(Devel::PPPort::newSV_type(), 4); 68