summaryrefslogtreecommitdiff
path: root/hv.c
diff options
context:
space:
mode:
authorLarry Wall <lwall@netlabs.com>1995-03-12 22:32:14 -0800
committerLarry Wall <lwall@netlabs.com>1995-03-12 22:32:14 -0800
commit748a93069b3d16374a9859d1456065dd3ae11394 (patch)
tree308ca14de9933a313dceacce8be77db67d9368c7 /hv.c
parentfec02dd38faf8f83471b031857d89cb76fea1ca0 (diff)
downloadperl-748a93069b3d16374a9859d1456065dd3ae11394.tar.gz
Perl 5.001perl-5.001
[See the Changes file for a list of changes]
Diffstat (limited to 'hv.c')
-rw-r--r--hv.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/hv.c b/hv.c
index 7ae2340835..ffaf65c43a 100644
--- a/hv.c
+++ b/hv.c
@@ -162,10 +162,11 @@ register U32 hash;
}
SV *
-hv_delete(hv,key,klen)
+hv_delete(hv,key,klen,flags)
HV *hv;
char *key;
U32 klen;
+I32 flags;
{
register XPVHV* xhv;
register char *s;
@@ -207,7 +208,10 @@ U32 klen;
*oentry = entry->hent_next;
if (i && !*oentry)
xhv->xhv_fill--;
- sv = sv_mortalcopy(entry->hent_val);
+ if (flags & G_DISCARD)
+ sv = Nullsv;
+ else
+ sv = sv_mortalcopy(entry->hent_val);
if (entry == xhv->xhv_eiter)
entry->hent_klen = -1;
else