X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=av.c;h=423d00632d1aed8424add4a352ac62ea3db904cc;hb=af5683d1a11b86657bb9d3800d54c4d65ca7b5a0;hp=c2250932c7361a55c6b370ab0176f6729eb763c7;hpb=7a5b473ebcffe303e0ee757c10a615cdeb97e2f3;p=p5sagit%2Fp5-mst-13.2.git diff --git a/av.c b/av.c index c225093..423d006 100644 --- a/av.c +++ b/av.c @@ -1,7 +1,7 @@ /* av.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, 2004, 2005 by Larry Wall and others + * 2000, 2001, 2002, 2003, 2004, 2005, 2006, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -24,6 +24,7 @@ void Perl_av_reify(pTHX_ AV *av) { + dVAR; I32 key; assert(av); @@ -41,7 +42,7 @@ Perl_av_reify(pTHX_ AV *av) SV * const sv = AvARRAY(av)[--key]; assert(sv); if (sv != &PL_sv_undef) - (void)SvREFCNT_inc(sv); + SvREFCNT_inc_void_NN(sv); } key = AvARRAY(av) - AvALLOC(av); while (key) @@ -62,6 +63,7 @@ extended. void Perl_av_extend(pTHX_ AV *av, I32 key) { + dVAR; MAGIC *mg; assert(av); @@ -191,6 +193,7 @@ more information on how to use this function on tied arrays. SV** Perl_av_fetch(pTHX_ register AV *av, I32 key, I32 lval) { + dVAR; SV *sv; assert(av); @@ -236,13 +239,13 @@ Perl_av_fetch(pTHX_ register AV *av, I32 key, I32 lval) if (key > AvFILLp(av)) { if (!lval) return 0; - sv = NEWSV(5,0); + sv = newSV(0); return av_store(av,key,sv); } if (AvARRAY(av)[key] == &PL_sv_undef) { emptyness: if (lval) { - sv = NEWSV(6,0); + sv = newSV(0); return av_store(av,key,sv); } return 0; @@ -276,6 +279,7 @@ more information on how to use this function on tied arrays. SV** Perl_av_store(pTHX_ register AV *av, I32 key, SV *val) { + dVAR; SV** ary; assert(av); @@ -358,12 +362,12 @@ Creates a new AV. The reference count is set to 1. AV * Perl_newAV(pTHX) { - register AV * const av = (AV*)NEWSV(3,0); + register AV * const av = (AV*)newSV(0); sv_upgrade((SV *)av, SVt_PVAV); /* sv_upgrade does AvREAL_only() */ AvALLOC(av) = 0; - SvPV_set(av, (char*)0); + SvPV_set(av, NULL); AvMAX(av) = AvFILLp(av) = -1; return av; } @@ -381,7 +385,7 @@ will have a reference count of 1. AV * Perl_av_make(pTHX_ register I32 size, register SV **strp) { - register AV * const av = (AV*)NEWSV(8,0); + register AV * const av = (AV*)newSV(0); sv_upgrade((SV *) av,SVt_PVAV); /* sv_upgrade does AvREAL_only() */ @@ -395,7 +399,7 @@ Perl_av_make(pTHX_ register I32 size, register SV **strp) AvMAX(av) = size - 1; for (i = 0; i < size; i++) { assert (*strp); - ary[i] = NEWSV(7,0); + ary[i] = newSV(0); sv_setsv(ary[i], *strp); strp++; } @@ -415,6 +419,7 @@ array itself. void Perl_av_clear(pTHX_ register AV *av) { + dVAR; register I32 key; assert(av); @@ -477,7 +482,7 @@ Perl_av_undef(pTHX_ register AV *av) } Safefree(AvALLOC(av)); AvALLOC(av) = 0; - SvPV_set(av, (char*)0); + SvPV_set(av, NULL); AvMAX(av) = AvFILLp(av) = -1; } @@ -769,6 +774,7 @@ and null is returned. SV * Perl_av_delete(pTHX_ AV *av, I32 key, I32 flags) { + dVAR; SV *sv; assert(av); @@ -856,6 +862,7 @@ C<&PL_sv_undef>. bool Perl_av_exists(pTHX_ AV *av, I32 key) { + dVAR; assert(av); if (SvRMAGICAL(av)) {