On Tue, 2 Jan 2007, Mathieu Bouchard wrote:
And also, here's a plan for making t_gpointer die:
- Move gs_refcount to t_array and t_canvas.
- add a t_pd header to t_array so that it can be recognised by its t_class*.
- Remove gs_which because we can already figure it out
- nuke gp_valid, a_valid and gl_valid
- nuke t_gstub completely, by replacing gp_stub by gs_un.
All those 5 changes have been made in DesireData tonight. I justify this by the fact that no externals in the pd cvs are using gpointers explicitly; so, compatibility is preserved. All gpointers will use a pure refcount system, without weakrefs. Note that this is all "in theory", because gpointers are currently unsupported in DesireData, but I'm confident that I made all the big changes that needed to be done and the rest of the work will be easy when gpointers are rehabilitated.
- at this point, the only remaining things are the element pointer (gp_un)
and the container pointer (gp_stub aka gs_un). If the unused portion of a_type is recycled (only compatible if no externals check for A_POINTER) then we could make it hold the index,
This can't be done as long as the current atom system is supported (the new atom system will have stuff like atom_init, atom_delete, etc), because, unlike the string-vs-symbol case, i don't have much of a fallback if new-style A_POINTER is not supported. Anyway before doing that change I also have to remove g_next, so, this may take a while...
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada