summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pp.c2
-rw-r--r--pp_hot.c2
-rw-r--r--scope.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/pp.c b/pp.c
index f970cdecd7..2d49cf15c6 100644
--- a/pp.c
+++ b/pp.c
@@ -3545,7 +3545,7 @@ PP(pp_hslice)
else {
STRLEN keylen;
char *key = SvPV(keysv, keylen);
- save_delete(hv, key, keylen);
+ SAVEDELETE(hv, savepvn(key,keylen), keylen);
}
}
}
diff --git a/pp_hot.c b/pp_hot.c
index 30cc61d22c..df666473ad 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -1577,7 +1577,7 @@ PP(pp_helem)
if (!preeminent) {
STRLEN keylen;
char *key = SvPV(keysv, keylen);
- save_delete(hv, key, keylen);
+ SAVEDELETE(hv, savepvn(key,keylen), keylen);
} else
save_helem(hv, keysv, svp);
}
diff --git a/scope.c b/scope.c
index d4ea391d72..527593542c 100644
--- a/scope.c
+++ b/scope.c
@@ -852,7 +852,7 @@ Perl_leave_scope(pTHX_ I32 base)
ptr = SSPOPPTR;
(void)hv_delete(hv, (char*)ptr, (U32)SSPOPINT, G_DISCARD);
SvREFCNT_dec(hv);
- /* Safefree(ptr); */ /* Does not work with shared strings. */
+ Safefree(ptr);
break;
case SAVEt_DESTRUCTOR:
ptr = SSPOPPTR;