Change 18421 by sky@sky-tibook on 2003/01/04 01:27:55
Fix long standing memory leak with pop and shift!
Affected files ...
... //depot/perl/ext/threads/shared/shared.xs#30 edit
Differences ...
==== //depot/perl/ext/threads/shared/shared.xs#30 (text) ====
Index: perl/ext/threads/shared/shared.xs
--- perl/ext/threads/shared/shared.xs#29~17453~ Tue Jul 9 14:23:31 2002
+++ perl/ext/threads/shared/shared.xs Fri Jan 3 17:27:55 2003
@@ -813,8 +813,9 @@
SHARED_CONTEXT;
sv = av_pop((AV*)SHAREDSvPTR(shared));
CALLER_CONTEXT;
- ST(0) = Nullsv;
+ ST(0) = sv_newmortal();
Perl_sharedsv_associate(aTHX_ &ST(0), sv, 0);
+ SvREFCNT_dec(sv);
LEAVE_LOCK;
XSRETURN(1);
@@ -827,8 +828,9 @@
SHARED_CONTEXT;
sv = av_shift((AV*)SHAREDSvPTR(shared));
CALLER_CONTEXT;
- ST(0) = Nullsv;
+ ST(0) = sv_newmortal();
Perl_sharedsv_associate(aTHX_ &ST(0), sv, 0);
+ SvREFCNT_dec(sv);
LEAVE_LOCK;
XSRETURN(1);
End of Patch.