summaryrefslogtreecommitdiff
path: root/hv.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2021-09-03 08:21:35 +0000
committerNicholas Clark <nick@ccl4.org>2021-09-03 10:37:55 +0000
commitec7598c64132341ffec3934a78bad178846da36b (patch)
tree8b104c726fdd180a1dd9d5351d6ee58af4c61301 /hv.c
parent8937088f79a80f8cf6f85872e72e9a3b8325e19a (diff)
downloadperl-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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hv.c b/hv.c
index 05ed075aee..1738c78785 100644
--- a/hv.c
+++ b/hv.c
@@ -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++) {