diff options
author | Mark McLoughlin <mark@skynet.ie> | 2004-03-30 15:04:18 +0000 |
---|---|---|
committer | Mark McLoughlin <markmc@src.gnome.org> | 2004-03-30 15:04:18 +0000 |
commit | 2c1e925f7540c6e35d4a44e86f58d4f0794c21b1 (patch) | |
tree | 17cc2a7f4f770128d812949edb7dfb85d40fa7bb /gconf/gconf-sources.c | |
parent | 10091b5d8e4da3e44c8982eb6d44955bf4ae2fc6 (diff) | |
download | gconf-2c1e925f7540c6e35d4a44e86f58d4f0794c21b1.tar.gz |
add a vtable_size member to the vtable.
2004-03-24 Mark McLoughlin <mark@skynet.ie>
* gconf/gconf-backend.h: add a vtable_size member to
the vtable.
* gconf/gconf-backend.c:
(gconf_backend_verify_vtable): impl. copying handling
mismatches in vtable sizes and also refuse to use the
backend if any of the functions we require are NULL.
(gconf_get_backend): fixup error handling a bit.
* gconf/gconf-sources.c: update to take into account
that the we have a copy of the vtable now rather than
just a pointer to it.
* doc/gconf/tmpl/gconf-backend.sgml: upd.
* backends/markup-backend.c,
backends/xml-backend.c: add sizeof (GConfBackendVTable) to
the vtable.
Diffstat (limited to 'gconf/gconf-sources.c')
-rw-r--r-- | gconf/gconf-sources.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/gconf/gconf-sources.c b/gconf/gconf-sources.c index 0962c4bd..1739abaf 100644 --- a/gconf/gconf-sources.c +++ b/gconf/gconf-sources.c @@ -78,7 +78,7 @@ gconf_source_free (GConfSource* source) backend = source->backend; - (*source->backend->vtable->destroy_source)(source); + (*source->backend->vtable.destroy_source)(source); /* Remove ref held by the source. */ gconf_backend_unref(backend); @@ -86,8 +86,8 @@ gconf_source_free (GConfSource* source) #define SOURCE_READABLE(source, key, err) \ ( ((source)->flags & GCONF_SOURCE_ALL_READABLE) || \ - ((source)->backend->vtable->readable != NULL && \ - (*(source)->backend->vtable->readable)((source), (key), (err))) ) + ((source)->backend->vtable.readable != NULL && \ + (*(source)->backend->vtable.readable)((source), (key), (err))) ) static gboolean source_is_writable(GConfSource* source, const gchar* key, GError** err) @@ -96,8 +96,8 @@ source_is_writable(GConfSource* source, const gchar* key, GError** err) return FALSE; else if ((source->flags & GCONF_SOURCE_ALL_WRITEABLE) != 0) return TRUE; - else if ((source->backend->vtable->writable != NULL) && - (*source->backend->vtable->writable)(source, key, err)) + else if ((source->backend->vtable.writable != NULL) && + (*source->backend->vtable.writable)(source, key, err)) return TRUE; else return FALSE; @@ -119,7 +119,7 @@ gconf_source_query_value (GConfSource* source, if ( SOURCE_READABLE(source, key, err) ) { g_return_val_if_fail(err == NULL || *err == NULL, NULL); - return (*source->backend->vtable->query_value)(source, key, locales, schema_name, err); + return (*source->backend->vtable.query_value)(source, key, locales, schema_name, err); } else return NULL; @@ -139,7 +139,7 @@ gconf_source_query_metainfo (GConfSource* source, if ( SOURCE_READABLE(source, key, err) ) { g_return_val_if_fail(err == NULL || *err == NULL, NULL); - return (*source->backend->vtable->query_metainfo)(source, key, err); + return (*source->backend->vtable.query_metainfo)(source, key, err); } else return NULL; @@ -163,7 +163,7 @@ gconf_source_set_value (GConfSource* source, if ( source_is_writable(source, key, err) ) { g_return_val_if_fail(err == NULL || *err == NULL, FALSE); - (*source->backend->vtable->set_value)(source, key, value, err); + (*source->backend->vtable.set_value)(source, key, value, err); return TRUE; } else @@ -184,7 +184,7 @@ gconf_source_unset_value (GConfSource* source, { g_return_val_if_fail(err == NULL || *err == NULL, FALSE); - (*source->backend->vtable->unset_value)(source, key, locale, err); + (*source->backend->vtable.unset_value)(source, key, locale, err); return TRUE; } else @@ -204,7 +204,7 @@ gconf_source_all_entries (GConfSource* source, if ( SOURCE_READABLE(source, dir, err) ) { g_return_val_if_fail(err == NULL || *err == NULL, NULL); - return (*source->backend->vtable->all_entries)(source, dir, locales, err); + return (*source->backend->vtable.all_entries)(source, dir, locales, err); } else return NULL; @@ -222,7 +222,7 @@ gconf_source_all_dirs (GConfSource* source, if ( SOURCE_READABLE(source, dir, err) ) { g_return_val_if_fail(err == NULL || *err == NULL, NULL); - return (*source->backend->vtable->all_subdirs)(source, dir, err); + return (*source->backend->vtable.all_subdirs)(source, dir, err); } else return NULL; @@ -240,7 +240,7 @@ gconf_source_dir_exists (GConfSource* source, if ( SOURCE_READABLE(source, dir, err) ) { g_return_val_if_fail(err == NULL || *err == NULL, FALSE); - return (*source->backend->vtable->dir_exists)(source, dir, err); + return (*source->backend->vtable.dir_exists)(source, dir, err); } else return FALSE; @@ -258,7 +258,7 @@ gconf_source_remove_dir (GConfSource* source, if ( source_is_writable(source, dir, err) ) { g_return_if_fail(err == NULL || *err == NULL); - (*source->backend->vtable->remove_dir)(source, dir, err); + (*source->backend->vtable.remove_dir)(source, dir, err); } } @@ -275,7 +275,7 @@ gconf_source_set_schema (GConfSource* source, if ( source_is_writable(source, key, err) ) { g_return_val_if_fail(err == NULL || *err == NULL, FALSE); - (*source->backend->vtable->set_schema)(source, key, schema_key, err); + (*source->backend->vtable.set_schema)(source, key, schema_key, err); return TRUE; } else @@ -285,7 +285,7 @@ gconf_source_set_schema (GConfSource* source, static gboolean gconf_source_sync_all (GConfSource* source, GError** err) { - return (*source->backend->vtable->sync_all)(source, err); + return (*source->backend->vtable.sync_all)(source, err); } /* @@ -413,8 +413,8 @@ gconf_sources_clear_cache (GConfSources *sources) { GConfSource* source = tmp->data; - if (source->backend->vtable->clear_cache) - (*source->backend->vtable->clear_cache)(source); + if (source->backend->vtable.clear_cache) + (*source->backend->vtable.clear_cache)(source); tmp = g_list_next(tmp); } |