X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/ac9f75b57c64f1cbeaf0caa63e0962e19df8d71a..31a09021a5558064a4417036c917712e2435edf7:/av.c diff --git a/av.c b/av.c index fe6cd9b..b251822 100644 --- a/av.c +++ b/av.c @@ -237,7 +237,7 @@ S_adjust_index(pTHX_ AV *av, const MAGIC *mg, I32 *keyp) } SV** -Perl_av_fetch(pTHX_ register AV *av, I32 key, I32 lval) +Perl_av_fetch(pTHX_ AV *av, I32 key, I32 lval) { dVAR; @@ -308,7 +308,7 @@ more information on how to use this function on tied arrays. */ SV** -Perl_av_store(pTHX_ register AV *av, I32 key, SV *val) +Perl_av_store(pTHX_ AV *av, I32 key, SV *val) { dVAR; SV** ary; @@ -345,7 +345,7 @@ Perl_av_store(pTHX_ register AV *av, I32 key, SV *val) } if (SvREADONLY(av) && key >= AvFILL(av)) - Perl_croak_no_modify(aTHX); + Perl_croak_no_modify(); if (!AvREAL(av) && AvREIFY(av)) av_reify(av); @@ -397,7 +397,7 @@ Perl equivalent: C */ AV * -Perl_av_make(pTHX_ register I32 size, register SV **strp) +Perl_av_make(pTHX_ I32 size, SV **strp) { AV * const av = MUTABLE_AV(newSV_type(SVt_PVAV)); /* sv_upgrade does AvREAL_only() */ @@ -447,7 +447,7 @@ Perl equivalent: C<@myarray = ();>. */ void -Perl_av_clear(pTHX_ register AV *av) +Perl_av_clear(pTHX_ AV *av) { dVAR; I32 extra; @@ -463,7 +463,7 @@ Perl_av_clear(pTHX_ register AV *av) #endif if (SvREADONLY(av)) - Perl_croak_no_modify(aTHX); + Perl_croak_no_modify(); /* Give any tie a chance to cleanup first */ if (SvRMAGICAL(av)) { @@ -510,7 +510,7 @@ be freed. */ void -Perl_av_undef(pTHX_ register AV *av) +Perl_av_undef(pTHX_ AV *av) { bool real; @@ -570,7 +570,7 @@ Perl equivalent: C. */ void -Perl_av_push(pTHX_ register AV *av, SV *val) +Perl_av_push(pTHX_ AV *av, SV *val) { dVAR; MAGIC *mg; @@ -579,7 +579,7 @@ Perl_av_push(pTHX_ register AV *av, SV *val) assert(SvTYPE(av) == SVt_PVAV); if (SvREADONLY(av)) - Perl_croak_no_modify(aTHX); + Perl_croak_no_modify(); if ((mg = SvTIED_mg((const SV *)av, PERL_MAGIC_tied))) { Perl_magic_methcall(aTHX_ MUTABLE_SV(av), mg, "PUSH", G_DISCARD, 1, @@ -601,7 +601,7 @@ Perl equivalent: C */ SV * -Perl_av_pop(pTHX_ register AV *av) +Perl_av_pop(pTHX_ AV *av) { dVAR; SV *retval; @@ -611,7 +611,7 @@ Perl_av_pop(pTHX_ register AV *av) assert(SvTYPE(av) == SVt_PVAV); if (SvREADONLY(av)) - Perl_croak_no_modify(aTHX); + Perl_croak_no_modify(); if ((mg = SvTIED_mg((const SV *)av, PERL_MAGIC_tied))) { retval = Perl_magic_methcall(aTHX_ MUTABLE_SV(av), mg, "POP", 0, 0); if (retval) @@ -662,7 +662,7 @@ Perl equivalent: C */ void -Perl_av_unshift(pTHX_ register AV *av, register I32 num) +Perl_av_unshift(pTHX_ AV *av, I32 num) { dVAR; I32 i; @@ -672,7 +672,7 @@ Perl_av_unshift(pTHX_ register AV *av, register I32 num) assert(SvTYPE(av) == SVt_PVAV); if (SvREADONLY(av)) - Perl_croak_no_modify(aTHX); + Perl_croak_no_modify(); if ((mg = SvTIED_mg((const SV *)av, PERL_MAGIC_tied))) { Perl_magic_methcall(aTHX_ MUTABLE_SV(av), mg, "UNSHIFT", @@ -727,7 +727,7 @@ Perl equivalent: C */ SV * -Perl_av_shift(pTHX_ register AV *av) +Perl_av_shift(pTHX_ AV *av) { dVAR; SV *retval; @@ -737,7 +737,7 @@ Perl_av_shift(pTHX_ register AV *av) assert(SvTYPE(av) == SVt_PVAV); if (SvREADONLY(av)) - Perl_croak_no_modify(aTHX); + Perl_croak_no_modify(); if ((mg = SvTIED_mg((const SV *)av, PERL_MAGIC_tied))) { retval = Perl_magic_methcall(aTHX_ MUTABLE_SV(av), mg, "SHIFT", 0, 0); if (retval) @@ -792,7 +792,7 @@ the same as C. =cut */ void -Perl_av_fill(pTHX_ register AV *av, I32 fill) +Perl_av_fill(pTHX_ AV *av, I32 fill) { dVAR; MAGIC *mg; @@ -853,7 +853,7 @@ Perl_av_delete(pTHX_ AV *av, I32 key, I32 flags) assert(SvTYPE(av) == SVt_PVAV); if (SvREADONLY(av)) - Perl_croak_no_modify(aTHX); + Perl_croak_no_modify(); if (SvRMAGICAL(av)) { const MAGIC * const tied_magic @@ -934,7 +934,6 @@ Perl_av_exists(pTHX_ AV *av, I32 key) const MAGIC * const regdata_magic = mg_find((const SV *)av, PERL_MAGIC_regdata); if (tied_magic || regdata_magic) { - SV * const sv = sv_newmortal(); MAGIC *mg; /* Handle negative array indices 20020222 MJD */ if (key < 0) { @@ -948,14 +947,18 @@ Perl_av_exists(pTHX_ AV *av, I32 key) else return FALSE; } - - mg_copy(MUTABLE_SV(av), sv, 0, key); - mg = mg_find(sv, PERL_MAGIC_tiedelem); - if (mg) { - magic_existspack(sv, mg); - return cBOOL(SvTRUE_nomg(sv)); - } - + { + SV * const sv = sv_newmortal(); + mg_copy(MUTABLE_SV(av), sv, 0, key); + mg = mg_find(sv, PERL_MAGIC_tiedelem); + if (mg) { + magic_existspack(sv, mg); + { + I32 retbool = SvTRUE_nomg_NN(sv); + return cBOOL(retbool); + } + } + } } }