[PD-dev] deadly leak

Mathieu Bouchard matju at artengine.ca
Wed Dec 14 17:51:18 CET 2011


Le 2011-12-14 à 10:15:00, Ivica Ico Bukvic a écrit :

> So, the only way I can ensure in pd-l2ork that this never happens is 
> that I enable global variable in canvas_new making sure that pd_new 
> function is aware its next allocation is for a canvas. I also maintain a 
> global single-linked list of previously allocated memory locations of 
> canvases and check that the newly created canvas does not reuse old 
> memory location.

In DesireData, I had a concept called «zombies» that was quite similar to 
that. It would postpone deallocation of objects until it knew that the 
client (tcl/tk) would not confuse the dead object with the newer object. 
During that time, the object is destructed (the freemethod was called) but 
freebytes isn't called yet, and the class of the object is changed to 
ensure that every message received is reported as an error and doesn't 
crash.

But it doesn't look like the duplicate messages are at all related to that 
kind of problem/solution. It looks like just a bug of forgetting to call 
pd_unbind in one place. Any such bug that also exists in pd-vanilla is 
unrelated to zombie-style solutions, as far as I can think of the problem.

  ______________________________________________________________________
| Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal, QC


More information about the Pd-dev mailing list