class Foo : GLib.Object { } class Bar : GLib.Object { GLib.List list; construct { list = new GLib.List (); } public void add (G item) { list.append (item); } } class Baz : GLib.Object { GLib.Node node; construct { node = new GLib.Node (); } public void add (G item) { node.append_data (item); } } void main () { var foo = new Foo (); var bar = new Bar (); bar.add (foo); assert (foo.ref_count == 2); bar = null; assert (foo.ref_count == 1); var baz = new Baz (); baz.add (foo); assert (foo.ref_count == 2); baz = null; assert (foo.ref_count == 1); }