From 2959a5f6fe8f2ab494d71a3a8bae6bfd3bc7ed67 Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Sun, 25 Feb 2018 20:18:41 -0500 Subject: [PATCH] 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 --- common/flatpak-utils.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) 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")); + } } } -- 2.30.2