GSettingsSchema: store a backref to the source

Record in each GSettingsSchema object the source from which it came.

This will be useful in future commits.

https://bugzilla.gnome.org/show_bug.cgi?id=668232
This commit is contained in:
Ryan Lortie 2013-10-26 18:50:39 -04:00
parent e462eda3d5
commit 0ef43ba743

View File

@ -138,6 +138,7 @@
**/
struct _GSettingsSchema
{
GSettingsSchemaSource *source;
const gchar *gettext_domain;
const gchar *path;
GQuark *items;
@ -412,6 +413,7 @@ g_settings_schema_source_lookup (GSettingsSchemaSource *source,
return NULL;
schema = g_slice_new0 (GSettingsSchema);
schema->source = g_settings_schema_source_ref (source);
schema->ref_count = 1;
schema->id = g_strdup (schema_id);
schema->table = table;
@ -588,6 +590,7 @@ g_settings_schema_unref (GSettingsSchema *schema)
{
if (g_atomic_int_dec_and_test (&schema->ref_count))
{
g_settings_schema_source_unref (schema->source);
gvdb_table_unref (schema->table);
g_free (schema->items);
g_free (schema->id);