Methods annotated [DestroysInstance] on non-compact classes do not receive an owned `this' reference
Some pseudocode:
class SomeClass : Object {
[DestroysInstance]
public void do_thing ();
}
...
some_class_instance.do_thing ();
Expected generated C code:
_tmpxx_ = some_class_instance;
some_class_instance = NULL;
some_class_do_thing (_tmpxx_);
_g_object_unref0 (some_class_instance);
or
_tmpxx_ = _g_object_ref0 (some_class_instance);
some_class_do_thing (_tmpxx_);
_g_object_unref0 (some_class_instance);
Actual generated C code:
some_class_do_thing (some_class_instance);
_g_object_unref0 (some_class_instance);
The above results in a double-unref.
This regression was introduced by 3d83f31a