X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/147e38468b8279e26a0ca11e4efd8492016f2702..aa0c5741dff171689a361a897f3581674f0d1922:/av.c diff --git a/av.c b/av.c index 5afae8d..ba97fed 100644 --- a/av.c +++ b/av.c @@ -542,7 +542,7 @@ void Perl_av_undef(pTHX_ AV *av) { bool real; - SSize_t orig_ix; + SSize_t orig_ix = PL_tmps_ix; /* silence bogus warning about possible unitialized use */ PERL_ARGS_ASSERT_AV_UNDEF; assert(SvTYPE(av) == SVt_PVAV); @@ -551,7 +551,8 @@ Perl_av_undef(pTHX_ AV *av) if (SvTIED_mg((const SV *)av, PERL_MAGIC_tied)) av_fill(av, -1); - if ((real = cBOOL(AvREAL(av)))) { + real = cBOOL(AvREAL(av)); + if (real) { SSize_t key = AvFILLp(av) + 1; /* avoid av being freed when calling destructors below */ @@ -1056,17 +1057,17 @@ Perl_av_iter_p(pTHX_ AV *av) { PERL_ARGS_ASSERT_AV_ITER_P; assert(SvTYPE(av) == SVt_PVAV); -#if IVSIZE == I32SIZE - return (IV *)&(mg->mg_len); -#else - if (!mg->mg_ptr) { - IV *temp; - mg->mg_len = IVSIZE; - Newxz(temp, 1, IV); - mg->mg_ptr = (char *) temp; + if (sizeof(IV) == sizeof(SSize_t)) { + return (IV *)&(mg->mg_len); + } else { + if (!mg->mg_ptr) { + IV *temp; + mg->mg_len = IVSIZE; + Newxz(temp, 1, IV); + mg->mg_ptr = (char *) temp; + } + return (IV *)mg->mg_ptr; } - return (IV *)mg->mg_ptr; -#endif } /*