gio-2.0.vapi contains bad bindings for GLib.SettingsBackend
The definitions for SettingsBackend are included in gio/gsettingsbackend.h
while gio-2.0.vapi
contains:
[CCode (cheader_filename = "gio/gio.h", type_id = "g_settings_backend_get_type ()")]
public abstract class SettingsBackend : GLib.Object {
...
}
gio/gio.h
does not cause gio/gsettingsbackend.h
to be included.
With the current bindings the C compiler outputs warnings like implicit declaration of function ‘g_keyfile_settings_backend_new’; did you mean ‘some_other_function’?
and generated code causes segfaults.
Replacing all gio/gio.h
occurences with gio/gsettingsbackend.h
here fixes this issue. Also see https://developer.gnome.org/gio/stable/GSettingsBackend.html
edit: just replacing gio/gio.h
occurences with gio/gsettingsbackend.h
for SettingsBackend isn't a good solution as gio/gsettingsbackend.h
then also gets included even when none of the functions of SettingsBackend get used.
Edited by Jonathan Moerman