diff options
author | Richard Leach <richardleach@users.noreply.github.com> | 2022-02-09 21:53:55 +0000 |
---|---|---|
committer | xenu <me@xenu.pl> | 2022-03-07 01:08:53 +0100 |
commit | 8fcb24256a3027cbca7c100825eb3805586fe1e5 (patch) | |
tree | ef13c018bfdbee1dc73b5d38efdedd78614db471 /inline.h | |
parent | 75acd14e43f2ffb698fc7032498f31095b56adb5 (diff) | |
download | perl-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.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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]; } |