[PD] datastruct newbie mistake
Mathieu Bouchard
matju at artengine.ca
Tue Sep 26 18:14:43 CEST 2006
On Tue, 26 Sep 2006, Chuckk Hubbard wrote:
> I was about to say the coolest thing would be to be able to delete them.
> But as I think about it, it wouldn't be hard to make a patch that would
> set a certain flag to -1 in place of deleting a scalar, and then before
> appending new scalars, always search for any extant scalars with -1 in
> that value and alter their values instead of creating new scalars.
I have no idea what you're talking about because I've never used DS, but I
can tell you that scalars are part of a canvas in exactly the same way
that all patchable objects are: they're all a big brochette - a kind of
linked list in which each element points to the next one. In theory,
scalars and patchables can be mixed in that list (though I don't know
how much it can happen).
The common "class" of scalars (t_scalar) and patchables (t_text) is
gobjects (t_gobj), which is obviously a lot generic than what we usually
mean by GUI objects (which means t_text that use a custom
t_widgetbehavior). The "brochette feature" is part of t_gobj.
There is already code for deleting any t_gobj you want from the brochette:
that's what is used when you delete a patchable. There's just something at
some point that prevents it.
To me, the "-1" flag is really not needed, but then I might be missing
something... something like: a t_gpointer is not a weakref to a t_scalar,
it's a weakref to a t_canvas with an extra unsafe pointer to the t_scalar,
so the only way you can delete the t_scalar safely is by first deleting
all t_gpointers that refer to it, but that's not possible... anyone
correct me if I'm wrong. (I'll touch that code again eventually, but maybe
not this year)
_ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada
More information about the Pd-list
mailing list