Subject: | memory leak in XS uniq() on error from overloaded stringize |
Date: | Fri, 18 Sep 2009 07:10:36 +1000 |
To: | bug-List-MoreUtils [...] rt.cpan.org |
From: | Kevin Ryde <user42 [...] zip.com.au> |
With recent debian i386 perl 5.10.0 and List::MoreUtils 0.25_02 the
program foo.pl below consumes ever more memory, where I hoped it would
be a fixed amount.
The memory remains constant if using the pure-perl moreutils (commented
out line at the start).
I suspect the "undef" and hash are not freed if an overloaded stringize
throws an error under hv_exists_ent() and so jumps out across the C code
not giving it a chance to SvREFCNT_dec. Although this is unlikely, I
think it can be addressed easily by having perl's freetmps release those
two vars, per diff below.
Message body is not shown because sender requested not to inline it.
Message body is not shown because sender requested not to inline it.