mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-07-27 04:13:30 +02:00
gsettings: Don't crash when no schemas are installed
Still doesn't behave well ("gsettings help" causes an error), but at least there's no segfault anymore. https://bugzilla.gnome.org/show_bug.cgi?id=724847
This commit is contained in:
committed by
Matthias Clasen
parent
f1c81da5be
commit
5a894c3232
@@ -697,7 +697,7 @@ main (int argc, char **argv)
|
|||||||
if (argc < 2)
|
if (argc < 2)
|
||||||
return gsettings_help (FALSE, NULL);
|
return gsettings_help (FALSE, NULL);
|
||||||
|
|
||||||
global_schema_source = g_settings_schema_source_ref (g_settings_schema_source_get_default ());
|
global_schema_source = g_settings_schema_source_get_default ();
|
||||||
|
|
||||||
if (argc > 3 && g_str_equal (argv[1], "--schemadir"))
|
if (argc > 3 && g_str_equal (argv[1], "--schemadir"))
|
||||||
{
|
{
|
||||||
@@ -705,7 +705,6 @@ main (int argc, char **argv)
|
|||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
|
|
||||||
global_schema_source = g_settings_schema_source_new_from_directory (argv[2], parent, FALSE, &error);
|
global_schema_source = g_settings_schema_source_new_from_directory (argv[2], parent, FALSE, &error);
|
||||||
g_settings_schema_source_unref (parent);
|
|
||||||
|
|
||||||
if (global_schema_source == NULL)
|
if (global_schema_source == NULL)
|
||||||
{
|
{
|
||||||
@@ -719,6 +718,13 @@ main (int argc, char **argv)
|
|||||||
argv = argv + 2;
|
argv = argv + 2;
|
||||||
argc -= 2;
|
argc -= 2;
|
||||||
}
|
}
|
||||||
|
else if (global_schema_source == NULL)
|
||||||
|
{
|
||||||
|
g_printerr (_("No schemas installed\n"));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
g_settings_schema_source_ref (global_schema_source);
|
||||||
|
|
||||||
need_settings = TRUE;
|
need_settings = TRUE;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user