summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-10-14 21:16:05 +0000
committerNicholas Clark <nick@ccl4.org>2008-10-14 21:16:05 +0000
commite7fab88422313b73647d6da244e7b2044d28280d (patch)
treec8827c4b8756221d46651c88bc6105bcc31c0121 /sv.c
parentc01be2ceee59c12c021a43356af939d6df88f074 (diff)
downloadperl-e7fab88422313b73647d6da244e7b2044d28280d.tar.gz
Yet another [ACGHS]V pointer in the interpreter structure that needs to
be reset if its SV is freed. (see change 22688 (30952)). A real live bug found by Slaven and Andreas whilst smoking maint-5.8.x. I guess that we should audit the interpreter structure for any others. p4raw-id: //depot/perl@34479
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sv.c b/sv.c
index e39a2c9d26..33aa8ec38c 100644
--- a/sv.c
+++ b/sv.c
@@ -5485,6 +5485,9 @@ Perl_sv_clear(pTHX_ register SV *const sv)
cv_undef((CV*)sv);
goto freescalar;
case SVt_PVHV:
+ if (PL_last_swash_hv == (HV*)sv) {
+ PL_last_swash_hv = NULL;
+ }
Perl_hv_kill_backrefs(aTHX_ (HV*)sv);
hv_undef((HV*)sv);
break;