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.

Reply via email to