having to allocate memory where sizeof(IV) > sizeof(I32)).
p4raw-id: //depot/perl@32760
return &(mg->mg_obj);
}
-/* This will change to returning IV ** at some point soon */
-I32 *
+IV *
Perl_av_iter_p(pTHX_ AV *av) {
MAGIC *const mg = get_aux_mg(av);
+#if IVSIZE == I32SIZE
return &(mg->mg_len);
+#else
+ if (!mg->mg_ptr) {
+ mg->mg_len = IVSIZE;
+ Newxz(mg->mg_ptr, 1, IV);
+ }
+ return (IV *)mg->mg_ptr;
+#endif
}
/*
ApdoxM |SV** |av_create_and_unshift_one|NN AV **const avp|NN SV *const val
Apd |void |av_unshift |NN AV* ar|I32 num
Apo |SV** |av_arylen_p |NN AV* av
-AMpo |I32* |av_iter_p |NN AV* av
+Apo |IV* |av_iter_p |NN AV* av
#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
s |MAGIC* |get_aux_mg |NN AV *av
#endif
dSP;
AV *array = (AV*)POPs;
const I32 gimme = GIMME_V;
- I32 *iterp = Perl_av_iter_p(aTHX_ array);
+ IV *iterp = Perl_av_iter_p(aTHX_ array);
const IV current = (*iterp)++;
if (current > av_len(array)) {
PERL_CALLCONV SV** Perl_av_arylen_p(pTHX_ AV* av)
__attribute__nonnull__(pTHX_1);
-PERL_CALLCONV I32* Perl_av_iter_p(pTHX_ AV* av)
+PERL_CALLCONV IV* Perl_av_iter_p(pTHX_ AV* av)
__attribute__nonnull__(pTHX_1);
#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)