mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-04-16 20:38:48 +02:00
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:
parent
e462eda3d5
commit
0ef43ba743
@ -138,6 +138,7 @@
|
|||||||
**/
|
**/
|
||||||
struct _GSettingsSchema
|
struct _GSettingsSchema
|
||||||
{
|
{
|
||||||
|
GSettingsSchemaSource *source;
|
||||||
const gchar *gettext_domain;
|
const gchar *gettext_domain;
|
||||||
const gchar *path;
|
const gchar *path;
|
||||||
GQuark *items;
|
GQuark *items;
|
||||||
@ -412,6 +413,7 @@ g_settings_schema_source_lookup (GSettingsSchemaSource *source,
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
schema = g_slice_new0 (GSettingsSchema);
|
schema = g_slice_new0 (GSettingsSchema);
|
||||||
|
schema->source = g_settings_schema_source_ref (source);
|
||||||
schema->ref_count = 1;
|
schema->ref_count = 1;
|
||||||
schema->id = g_strdup (schema_id);
|
schema->id = g_strdup (schema_id);
|
||||||
schema->table = table;
|
schema->table = table;
|
||||||
@ -588,6 +590,7 @@ g_settings_schema_unref (GSettingsSchema *schema)
|
|||||||
{
|
{
|
||||||
if (g_atomic_int_dec_and_test (&schema->ref_count))
|
if (g_atomic_int_dec_and_test (&schema->ref_count))
|
||||||
{
|
{
|
||||||
|
g_settings_schema_source_unref (schema->source);
|
||||||
gvdb_table_unref (schema->table);
|
gvdb_table_unref (schema->table);
|
||||||
g_free (schema->items);
|
g_free (schema->items);
|
||||||
g_free (schema->id);
|
g_free (schema->id);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user