summaryrefslogtreecommitdiff
path: root/inline.h
diff options
context:
space:
mode:
authorRichard Leach <richardleach@users.noreply.github.com>2022-02-09 21:53:55 +0000
committerxenu <me@xenu.pl>2022-03-07 01:08:53 +0100
commit8fcb24256a3027cbca7c100825eb3805586fe1e5 (patch)
treeef13c018bfdbee1dc73b5d38efdedd78614db471 /inline.h
parent75acd14e43f2ffb698fc7032498f31095b56adb5 (diff)
downloadperl-8fcb24256a3027cbca7c100825eb3805586fe1e5.tar.gz
Inlined newSV_type(SVt_NULL) leaner than non-inlined newSV(0)
When a function outside of sv.c creates a SV via newSV(0): * There is a call to Perl_newSV * A SV head is uprooted and its flags set * A runtime check is made to effectively see if 0 > 0 * The new SV* is returned Replacing newSV(0) with newSV_type(SVt_NULL) should be more efficient, because (assuming there are SV heads to uproot), the only step is: * A SV head is uprooted and its flags set
Diffstat (limited to 'inline.h')
-rw-r--r--inline.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/inline.h b/inline.h
index c5f0ee69b3..2bf98d815d 100644
--- a/inline.h
+++ b/inline.h
@@ -134,7 +134,7 @@ Perl_av_fetch_simple(pTHX_ AV *av, SSize_t key, I32 lval)
assert(key > -1);
if ( (key > AvFILLp(av)) || !AvARRAY(av)[key]) {
- return lval ? av_store_simple(av,key,newSV(0)) : NULL;
+ return lval ? av_store_simple(av,key,newSV_type(SVt_NULL)) : NULL;
} else {
return &AvARRAY(av)[key];
}