[PD-dev] deadly leak
Hans-Christoph Steiner
hans at at.or.at
Fri Dec 16 07:01:17 CET 2011
There are a couple of minor details in that patch that I fixed in the attached patch:
- remove debugging post() messages from editor_new() and editor_free()
- remove glist_free() and glist_cleanup() from g_canvas.h since they no longer exist
.hc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-fixes-for-workaround-for-gop-multiplicity-bug-262193.patch
Type: application/octet-stream
Size: 1383 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20111215/bc6d39a6/attachment.obj>
-------------- next part --------------
On Dec 14, 2011, at 8:02 PM, Miller Puckette wrote:
> Personally, I'm hoping to put band-aids on as many manaifestations of the
> problem as I can track down (so thanks for this one :) and then re-design
> the whole editor creation and destruction strategy for 0.44 - it looks
> like it can never be fully debugged the way it's stet up now!
>
> Miller
>
> On Thu, Dec 15, 2011 at 03:18:30AM +0100, Krzysztof Czaja wrote:
>> On 12/15/2011 12:10 AM, Ivica Ico Bukvic wrote:
>> ...
>>> Wow! You just helped me finally solve this riddle! Could it be really
>>> this simple? In canvas_free() call inside g_canvas.c simply add the
>>> following 2 lines:
>>>
>>> if (x->gl_editor)
>>> canvas_destroy_editor(x);
>>>
>>> I added them right below
>>>
>>> if (x == glist_getcanvas(x))
>>> canvas_vis(x, 0);
>>>
>>> Now even if the canvas is recreated with the same memory space there is
>>> no more double-entry bug. Are there any potential regressions with this
>>> model? The canvas is getting freed so I cannot imagine this posing any
>>> problems but then again I am sure I may be missing something...
>>
>> this only handles the case when the GOP is part of a toplevel window.
>>
>> The other case is when the GOP's parent isn't toplevel. When the
>> window of such a parent is closed, the canvases themselves aren't
>> destroyed, but the editors should be.
>>
>> So I think the best way is to get rid of sub-editors recursively.
>> I may be mistaken, though, because there are some partial workarounds
>> already in the code. Apparently, Miller had been aware of the issue
>> but then things went their own way, somehow.
>>
>> Krzysztof
>>
>> _______________________________________________
>> Pd-dev mailing list
>> Pd-dev at iem.at
>> http://lists.puredata.info/listinfo/pd-dev
>
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at iem.at
> http://lists.puredata.info/listinfo/pd-dev
----------------------------------------------------------------------------
News is what people want to keep hidden and everything else is publicity. - Bill Moyers
More information about the Pd-dev
mailing list