diff options
author | Nicholas Clark <nick@ccl4.org> | 2021-09-03 08:21:35 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2021-09-03 10:37:55 +0000 |
commit | ec7598c64132341ffec3934a78bad178846da36b (patch) | |
tree | 8b104c726fdd180a1dd9d5351d6ee58af4c61301 /hv.c | |
parent | 8937088f79a80f8cf6f85872e72e9a3b8325e19a (diff) | |
download | perl-ec7598c64132341ffec3934a78bad178846da36b.tar.gz |
Use HvTOTALKEYS() in place of HvARRAY() in various boolean tests
This is a better choice for an "is it empty?" optimisation, as HvARRAY()
can be non-NULL even when there actually are no keys.
Diffstat (limited to 'hv.c')
-rw-r--r-- | hv.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1164,7 +1164,7 @@ S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, } } xhv = (XPVHV*)SvANY(hv); - if (!HvARRAY(hv)) + if (!HvTOTALKEYS(hv)) return NULL; if (is_utf8 && !(k_flags & HVhek_KEYCANONICAL)) { @@ -1809,7 +1809,7 @@ Perl_hv_clear(pTHX_ HV *hv) EXTEND_MORTAL(1); PL_tmps_stack[++PL_tmps_ix] = SvREFCNT_inc_simple_NN(hv); orig_ix = PL_tmps_ix; - if (SvREADONLY(hv) && HvARRAY(hv) != NULL) { + if (SvREADONLY(hv) && HvTOTALKEYS(hv)) { /* restricted hash: convert all keys to placeholders */ STRLEN i; for (i = 0; i <= xhv->xhv_max; i++) { |