- data_object::destroy -> closure_invalidate();
- closure_invalidate() -> disconnect(closure);
- disconnect(closure) -> (unlink) closure_unref();
- closure_finalize() -> g_free (data_string);
-
- 1) need GObject and GType in glib
- 2) need GParam
- 3) need to resolve dtor cycles
- 4) need GSignal move
- 5) destroy on last caller ref or last data ref?
-
-
- random remarks:
- - don't mandate signals for GObject
- - OTOH, don't mandate GObject for GSignal
- - need marshaller repo with decent aliasing to base types
- - provide marshaller collection, virtually covering anything out there
- - at that point, still need GSignalCMarhsaller to g_signal_new() ?
- - can we combine varargs collect mechanisms with marshaller stubs?
- for out values (i.e. returntypes), that might get rid of the following
- point...
- - char* return signals with connections ala:
- connect({ return "static data that can't work"; }),
- connect({ return g_strdup ("properly duplicated string"); })
- won't work anymore. CRASH
-
- problems:
- - accumulator needs gboolean to indicate EMISSION_STOP
- - accumulator needs data
+ OK: data_object::destroy -> closure_invalidate();
+ MIS: closure_invalidate() -> disconnect(closure);
+ MIS: disconnect(closure) -> (unlink) closure_unref();
+ OK: closure_finalize() -> g_free (data_string);
+
+ random remarks:
+ - need marshaller repo with decent aliasing to base types
+ - provide marshaller collection, virtually covering anything out there