The ScintillaObject subclass does not chain up to its super class in the finalizer. This is a bug and must be done according to the GLib/GObject documentation.
One effect of this is that the destroy notifiers supplied in e.g. g_object_set_data_full() are never run.
I have attached a fix which is pretty simple.
Here's the patch
In #geany it was pointed out that saving the class pointer in class_init() might be preferable. Chose your preferred patch.
Looks good to me.
I prefer the second implementation because it's the common one and because it avoids querying the type system on each object's destruction, but both should work just fine.
Committed the first patch as [fbd0b2]. Saw the second patch after I'd already committed the first. It can be reverted if its worthwhile.
Unsure what's being used to create the patch but it doesn't cleanly go into the Import command of thg: there is an extra /scintilla in the paths and the comment after '---' is included in the commit message.
Related
Commit: [fbd0b2]
I don't care much, but Colomban (maintainer of Geany) seems to prefer the second one.
PS: I used git to create the patch and I created it against the Geany copy (I made sure the affected file is unmodified in Geany's copy). I forgot to strip the paths, sorry. I thought git pataches would be be patch (the program) compatible, I didn't check (t)hg.
Committed as [d5c029].
Related
Commit: [d5c029]