This only works because the struct is directly a global variable, and not a result of malloc.
Exactly.
If the pd-l2ork binary of GridFlow happens to work with pd-extended as well, it's a coïncidence... with a picky debugger, you'd find that there is a bug with copying a small t_widgetbehavior as if it were a large one.
Why would you copy it? My understanding is you declare it per-object to link specific behaviors and there are already examples in code (e.g. g_mycanvas.c).
I guess you could always use pd-l2ork's as a foundation and that will generate backwards-compatible binaries, no?
Ico