summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/pp_hot.c b/pp_hot.c
index faa66b42e4..e9fad16e57 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -1271,17 +1271,16 @@ PP(pp_helem)
if (SvTYPE(hv) == SVt_PVHV) {
he = hv_fetch_ent(hv, keysv, lval && !defer, 0);
- svp = he ? &Heval(he) : 0;
+ svp = he ? &HeVAL(he) : 0;
}
else if (SvTYPE(hv) == SVt_PVAV) {
- svp = avhv_fetch_ent((AV*)hv, keysv, lval);
+ svp = avhv_fetch_ent((AV*)hv, keysv, lval && !defer, 0);
}
else {
RETPUSHUNDEF;
}
-<<<<
if (lval) {
- if (svp || *svp == &sv_undef) {
+ if (!svp || *svp == &sv_undef) {
SV* lv;
SV* key2;
if (!defer)