Extension review guidelines state that:
Any signal connections made by an extension MUST be disconnected in
I understand why it’s required when connecting to “external” objects, i.e. those created/owned by the shell. But does it also apply to GObjects created by the extension?
For example: I create a custom GObject subclass with a signal, create an instance of it and connect to the signal in
enable(), then set the reference to
disable(). Will the signal handler that I didn’t disconnect cause a memory leak? (My tests with
System.dumpHeap()+heapgraph show that the object is successfully collected - unless I’m doing something wrong or misunderstanding)
Even extensions from
gnome-shell-extensions don’t disconnect everything.