summaryrefslogtreecommitdiff
path: root/av.c
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2021-07-31 17:32:51 -0600
committerKarl Williamson <khw@cpan.org>2021-07-31 17:38:34 -0600
commit832a378e4a2913b8e6028ffcb87ffa08bbad0d98 (patch)
tree7fb8ded96455361e842a996ea22c67c23b561546 /av.c
parent27901ad1f7facd17596e1df55cf68af25a21f52a (diff)
downloadperl-832a378e4a2913b8e6028ffcb87ffa08bbad0d98.tar.gz
Revert "av_create_and_push/unshift_one: faster create via newAV_alloc_xz"
This reverts commit 71ca71bc8b733c80f8f8099bb4673ee629da1353. It does not compile with C++: g++ -c -DPERL_CORE -D_REENTRANT -D_GNU_SOURCE -Wno-deprecated -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -ansi -O0 -ggdb3 -Wall -Werror=pointer-arith -Werror=vla -Wextra -Wwrite-strings av.c av.c: In function ‘SV** Perl_av_create_and_unshift_one(PerlInterpreter*, AV**, SV*)’: av.c:735:16: error: cannot convert ‘SV* const’ {aka ‘sv* const’} to ‘SV**’ {aka ‘sv**’} in return 735 | return val; | ^~~
Diffstat (limited to 'av.c')
-rw-r--r--av.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/av.c b/av.c
index cfc47a499c..d2f0e0db45 100644
--- a/av.c
+++ b/av.c
@@ -638,11 +638,9 @@ Perl_av_create_and_push(pTHX_ AV **const avp, SV *const val)
{
PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH;
- if (!*avp) {
- *avp = newAV_alloc_xz(4);
- AvARRAY(*avp)[ ++AvFILLp(*avp) ] = val;
- } else
- av_push(*avp, val);
+ if (!*avp)
+ *avp = newAV();
+ av_push(*avp, val);
}
/*
@@ -729,14 +727,10 @@ Perl_av_create_and_unshift_one(pTHX_ AV **const avp, SV *const val)
{
PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE;
- if (!*avp) {
- *avp = newAV_alloc_xz(4);
- AvARRAY(*avp)[ ++AvFILLp(*avp) ] = val;
- return val;
- } else {
- av_unshift(*avp, 1);
- return av_store(*avp, 0, val);
- }
+ if (!*avp)
+ *avp = newAV();
+ av_unshift(*avp, 1);
+ return av_store(*avp, 0, val);
}
/*