summaryrefslogtreecommitdiff
path: root/hv.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-06-12 21:58:23 +0000
committerNicholas Clark <nick@ccl4.org>2005-06-12 21:58:23 +0000
commit6c1b96a17296a211cb3d88901a67369582176a79 (patch)
tree46f14d58c5d9413541fc080771884e01f0046061 /hv.c
parent29404ae038d75e5ffd5727a026889b0987db9cd5 (diff)
downloadperl-6c1b96a17296a211cb3d88901a67369582176a79.tar.gz
Compare HE *s in S_unshare_hek_or_pvn's tight hek loop, rather than
HEKs p4raw-id: //depot/perl@24810
Diffstat (limited to 'hv.c')
-rw-r--r--hv.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/hv.c b/hv.c
index 1358acd07d..b779e35bc8 100644
--- a/hv.c
+++ b/hv.c
@@ -2201,9 +2201,10 @@ S_unshare_hek_or_pvn(pTHX_ const HEK *hek, const char *str, I32 len, U32 hash)
/* assert(xhv_array != 0) */
LOCK_STRTAB_MUTEX;
first = oentry = &(HvARRAY(PL_strtab))[hash & (I32) HvMAX(PL_strtab)];
- if (hek) {
+ if (he) {
+ const HE *const he_he = &(he->shared_he_he);
for (entry = *oentry; entry; oentry = &HeNEXT(entry), entry = *oentry) {
- if (HeKEY_hek(entry) != hek)
+ if (entry != he_he)
continue;
found = 1;
break;