From: Patrick Griffis Date: Mon, 26 Feb 2018 01:18:41 +0000 (-0500) Subject: Fix assertion when no gsettings schema installed X-Git-Tag: archive/raspbian/0.11.5-1+rpi1~1^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=96a4d49a71d63f2697e81eeeaed36346743a25bf;p=flatpak.git Fix assertion when no gsettings schema installed Fixes #1455 Closes: #1456 Approved by: mwleeds Applied-upstream: 1.11.4, commit:82f993e1c79911f5241c67f2347136156bf9909c Gbp-Pq: Name Fix-assertion-when-no-gsettings-schema-installed.patch --- diff --git a/common/flatpak-utils.c b/common/flatpak-utils.c index 9b18be3..afa1590 100644 --- a/common/flatpak-utils.c +++ b/common/flatpak-utils.c @@ -524,19 +524,26 @@ flatpak_get_gtk_theme (void) { /* The schema may not be installed so check first */ GSettingsSchemaSource *source = g_settings_schema_source_get_default (); - g_autoptr(GSettingsSchema) schema = g_settings_schema_source_lookup (source, - "org.gnome.desktop.interface", FALSE); + g_autoptr(GSettingsSchema) schema = NULL; - if (schema == NULL) - g_once_init_leave (>k_theme, g_strdup ("")); + if (source == NULL) + g_once_init_leave (>k_theme, g_strdup ("")); else { - /* GSettings is used to store the theme if you use Wayland or GNOME. - * TODO: Check XSettings Net/ThemeName for other desktops. - * We don't care about any other method (like settings.ini) because they - * aren't passed through the sandbox anyway. */ - g_autoptr(GSettings) settings = g_settings_new ("org.gnome.desktop.interface"); - g_once_init_leave (>k_theme, g_settings_get_string (settings, "gtk-theme")); + schema = g_settings_schema_source_lookup (source, + "org.gnome.desktop.interface", FALSE); + + if (schema == NULL) + g_once_init_leave (>k_theme, g_strdup ("")); + else + { + /* GSettings is used to store the theme if you use Wayland or GNOME. + * TODO: Check XSettings Net/ThemeName for other desktops. + * We don't care about any other method (like settings.ini) because they + * aren't passed through the sandbox anyway. */ + g_autoptr(GSettings) settings = g_settings_new ("org.gnome.desktop.interface"); + g_once_init_leave (>k_theme, g_settings_get_string (settings, "gtk-theme")); + } } }