From: SourceForge.net <no...@so...> - 2005-11-07 21:29:37
|
Bugs item #1348775, was opened at 2005-11-04 23:07 Message generated for change (Comment added) made by msofer You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=1348775&group_id=10894 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 45. Traces Group: current: 8.4.11 Status: Open Resolution: None Priority: 9 Submitted By: miguel sofer (msofer) Assigned to: Donal K. Fellows (dkf) Summary: varTraces leak when variable is unset Initial Comment: The new test trace-8.9 shows an 18-byte leak: set end [getbytes] for {set i 0} {$i < 5} {incr i} { set apa {a 1 b 2} set bepa [lrange $apa 0 end] trace add variable bepa write {error hej} catch {set bepa a} unset bepa set tmp $end set end [getbytes] } expr {$end - $tmp} This supercedes #1342858, which detected the same leak but blamed it on [dict]. ---------------------------------------------------------------------- >Comment By: miguel sofer (msofer) Date: 2005-11-07 18:29 Message: Logged In: YES user_id=148712 Patch replaced with a slightly-less-icky one (thanks kevin and joe). ---------------------------------------------------------------------- Comment By: miguel sofer (msofer) Date: 2005-11-07 17:24 Message: Logged In: YES user_id=148712 The attached patch solves the issue for 8.4, in an inelegant but effective and safe (?) way - assigning to dkf for a second opinion on this. ---------------------------------------------------------------------- Comment By: miguel sofer (msofer) Date: 2005-11-07 09:34 Message: Logged In: YES user_id=148712 Specifically: the code for [unset] does Tcl_EventuallyFree the VarTrace, but does not free the contents of its clientData field. Look for a q&d solution in 8-4, and a redesign for 8.5 (see also #1056134) maybe involving api changes: Tcl_TraceVar should take also a deletion callback as argument. ---------------------------------------------------------------------- Comment By: miguel sofer (msofer) Date: 2005-11-07 07:46 Message: Logged In: YES user_id=148712 Test trace-8.9 deleted, trace-13.2-4 added to HEAD and 8-4-branch. When a traced variable is unset, the TraceVarInfo (clientData in the VarTrace struct) is leaked. This should be fixed directly in 8.4, and possibly together with #1056134 in HEAD. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=1348775&group_id=10894 |