<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div id="yui_3_16_0_1_1412261594126_4853">Hi Miller,</div><div id="yui_3_16_0_1_1412261594126_4854" dir="ltr">I'm experimenting with a gpointer revision by changing the "struct _scalar *gp_scalar" to "struct _gobj *gp_gobj".  This allows me to use gpointers in my introspection classes to refer to any Pd object that has a gobj header.  The benefits are that it's a single atom as opposed to a canvas name/level + index number, and it's noticeably faster when the user is querying lots and lots of objects.</div><div id="yui_3_16_0_1_1412261594126_4945" dir="ltr"><br></div><div id="yui_3_16_0_1_1412261594126_4946" dir="ltr">Because gpointer_check code is already used in all the objects in g_traversal.c, it's easy to just add a check to make sure the pointer points to a t_scalar class.  That way all the current classes dealing with pointers work exactly as they do currently.  (Other than [pointer] which needs to accept non-scalar pointers, too.)<br></div><div id="yui_3_16_0_1_1412261594126_5993" dir="ltr"><br></div><div id="yui_3_16_0_1_1412261594126_5994" dir="ltr">It works fine so far, but do you see any "gotchas" with this approach?</div><div id="yui_3_16_0_1_1412261594126_6086" dir="ltr"><br></div><div id="yui_3_16_0_1_1412261594126_6087" dir="ltr">-Jonathan<br></div><div></div></div></body></html>