[PD-dev] pd_free vs canvas_vis
IOhannes zmölnig
zmoelnig at iem.at
Sun Nov 20 18:17:44 CET 2011
On 11/19/2011 05:39 PM, Ivica Ico Bukvic wrote:
> I guess this is mainly for the Pd devs,
>
> Jonathan and I have been working on trying to have patch close itself
> through the script. However, even in the newest Pd the problem persists
> in that if one invokes menuclose via patch it crashes pd. I suspect this
> is because the closure happens while Pd is still traversing the tree and
> then trips up on newly deallocated memory pool invoked by the pd_free.
>
> Initially, I designed a workaround where pd_free is enqueued on the
> guiqueue and invoked a bit later ensuring that it is called after the
> tree navigation has ended. This works in most cases but not all.
> Intermittently this will crash Pd when using Jonathan's Nav abstraction
> which closes the current patch and also opens a new patch (navigation
> abstraction would be used to go between help files always keeping only
> one patch open at a time). Attached is Jonathan's abstraction.
>
> So, now I started investigating further and it seems that
> canvas_vis(x,0) closes the patch without any problems and without having
> to delay anything but this is not enough in and of itself to actually
> deallocate the actual t_canvas x and other instantiated objects
> associated with the canvas. So, how could one go about to implement this
> feature?
you could just use [canvasdelete] from iemguts.
send a "bang" to [canvasdelete] and it will delete itself
sand a "bang" to [canvasdelete 1] and it will delete the containing
abstraction.
that is, it will not close an opened patch (es opposed to an abstraction
contained within a patch), but it should be simple to add this
functionality to the existing framework.
famsdr
IOhannes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20111120/c6b1f231/attachment.pgp>
More information about the Pd-dev
mailing list