This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta 8bfeb7823012732f6bfd9c65485ae3ad9c0cce8d
[perl5.git] / av.c
diff --git a/av.c b/av.c
index 5afae8d..ba97fed 100644 (file)
--- 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
 }
 
 /*