As I found, pp_undef in
$a = 'aaa';
$a = 0;
undef $a;
was not reclaiming the storage, as it does in
$a = 'aaa';
undef $a;
The patch is below fixes this shortcoming (tests ok, perl rebuilds
itself OK),
Enjoy,
p5p-msgid: <
199702270707.CAA13978@monk.mps.ohio-state.edu>
private-msgid: <
199702270653.BAA13949@monk.mps.ohio-state.edu>
sv_setsv(sv, &sv_undef);
break;
default:
- if (SvPOK(sv) && SvLEN(sv)) {
+ if (SvTYPE(sv) >= SVt_PV && SvPVX(sv) && SvLEN(sv)) {
(void)SvOOK_off(sv);
Safefree(SvPVX(sv));
SvPV_set(sv, Nullch);