X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/f5d13a25262cb242090ad5e0703cf287e26156db..86c6fce076648c5abe5ab491fec9d3142d93bde1:/av.c diff --git a/av.c b/av.c index 475496d..44b5fbc 100644 --- a/av.c +++ b/av.c @@ -119,10 +119,6 @@ Perl_av_extend_guts(pTHX_ AV *av, I32 key, SSize_t *maxp, SV ***allocp, #endif if (*allocp) { -#if !defined(STRANGE_MALLOC) && !defined(MYMALLOC) - MEM_SIZE bytes; - IV itmp; -#endif #ifdef Perl_safesysmalloc_size /* Whilst it would be quite possible to move this logic around @@ -147,24 +143,7 @@ Perl_av_extend_guts(pTHX_ AV *av, I32 key, SSize_t *maxp, SV ***allocp, newmax = key + *maxp / 5; resize: MEM_WRAP_CHECK_1(newmax+1, SV*, oom_array_extend); -#if defined(STRANGE_MALLOC) || defined(MYMALLOC) Renew(*allocp,newmax+1, SV*); -#else - bytes = (newmax + 1) * sizeof(const SV *); -#define MALLOC_OVERHEAD 16 - itmp = MALLOC_OVERHEAD; - while ((MEM_SIZE)(itmp - MALLOC_OVERHEAD) < bytes) - itmp += itmp; - itmp -= MALLOC_OVERHEAD; - itmp /= sizeof(const SV *); - assert(itmp > newmax); - newmax = itmp - 1; - assert(newmax >= *maxp); - Newx(ary, newmax+1, SV*); - Copy(*allocp, ary, *maxp+1, SV*); - Safefree(*allocp); - *allocp = ary; -#endif #ifdef Perl_safesysmalloc_size resized: #endif @@ -658,7 +637,7 @@ array. The array will grow automatically to accommodate the addition. You must then use C to assign values to these new elements. Perl equivalent: C - + =cut */ @@ -759,13 +738,21 @@ Perl_av_shift(pTHX_ AV *av) } /* -=for apidoc av_len +=for apidoc av_top_index Returns the highest index in the array. The number of elements in the -array is C. Returns -1 if the array is empty. +array is C. Returns -1 if the array is empty. The Perl equivalent for this is C<$#myarray>. +(A slightly shorter form is C.) + +=for apidoc av_len + +Same as L. Returns the highest index in the array. Note that the +return value is +1 what its name implies it returns; and hence differs in +meaning from what the similarly named L returns. + =cut */ @@ -773,9 +760,8 @@ I32 Perl_av_len(pTHX_ AV *av) { PERL_ARGS_ASSERT_AV_LEN; - assert(SvTYPE(av) == SVt_PVAV); - return AvFILL(av); + return av_top_index(av); } /*