summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d533e71)
raw | patch | inline | side by side (parent: d533e71)
author | Sebastian Harl <sh@tokkee.org> | |
Sat, 17 Aug 2013 20:21:51 +0000 (22:21 +0200) | ||
committer | Sebastian Harl <sh@tokkee.org> | |
Sat, 17 Aug 2013 20:21:51 +0000 (22:21 +0200) |
This is not used currently. Since it only introduces unneeded complexity (and
somewhat ugly code in some cases), it's better to remove it.
somewhat ugly code in some cases), it's better to remove it.
src/core/object.c | patch | blob | history | |
src/core/plugin.c | patch | blob | history | |
src/core/store.c | patch | blob | history | |
src/include/core/object.h | patch | blob | history |
diff --git a/src/core/object.c b/src/core/object.c
index d6665e7cbd7546645093d0d97c68136dc17ed8a0..0205ed588f1e58a8afd727a99443c8037add9604 100644 (file)
--- a/src/core/object.c
+++ b/src/core/object.c
sizeof(sdb_object_wrapper_t),
sdb_object_wrapper_init,
- sdb_object_wrapper_destroy,
- /* clone = */ NULL
+ sdb_object_wrapper_destroy
};
/*
++obj->ref_cnt;
} /* sdb_object_ref */
-sdb_object_t *
-sdb_object_clone(const sdb_object_t *obj)
-{
- if ((! obj) || (! obj->type.clone))
- return NULL;
- return obj->type.clone(obj);
-} /* sdb_object_clone */
-
int
sdb_object_cmp_by_name(const sdb_object_t *o1, const sdb_object_t *o2)
{
diff --git a/src/core/plugin.c b/src/core/plugin.c
index 4dbea70109a49f13c6484b863d798ed79e582da9..8ca0fd74472a23b7b7f0ff0daa953ff1329ce0cf 100644 (file)
--- a/src/core/plugin.c
+++ b/src/core/plugin.c
sizeof(sdb_plugin_cb_t),
sdb_plugin_cb_init,
- sdb_plugin_cb_destroy,
- /* clone = */ NULL
+ sdb_plugin_cb_destroy
};
static sdb_type_t sdb_plugin_collector_cb_type = {
sizeof(sdb_plugin_collector_cb_t),
sdb_plugin_cb_init,
- sdb_plugin_cb_destroy,
- /* clone = */ NULL
+ sdb_plugin_cb_destroy
};
static int
diff --git a/src/core/store.c b/src/core/store.c
index eebe24b0ed48b7db014bc64dca3dd4c42fce1620..43a7a6bda20d1228f8fa6b389a5c9710d92936a2 100644 (file)
--- a/src/core/store.c
+++ b/src/core/store.c
sdb_object_deref(SDB_OBJ(sobj->parent));
} /* store_obj_destroy */
-/* this may not be used as a type on its own but only as helper functions for
- * the derived types; the function accepts a variadic list of arguments to
- * pass to the sub-type's init function */
-static sdb_object_t *
-store_obj_clone(const sdb_object_t *obj, ...)
-{
- const store_obj_t *sobj = STORE_CONST_OBJ(obj);
- store_obj_t *new;
-
- va_list ap;
-
- va_start(ap, obj);
-
- new = STORE_OBJ(sdb_object_vcreate(obj->name, obj->type, ap));
- va_end(ap);
- if (! new)
- return NULL;
-
- new->last_update = sobj->last_update;
- sdb_object_ref(SDB_OBJ(sobj->parent));
- new->parent = sobj->parent;
- return SDB_OBJ(new);
-} /* store_obj_clone */
-
static int
sdb_store_obj_init(sdb_object_t *obj, va_list ap)
{
sdb_llist_destroy(sobj->attributes);
} /* sdb_store_obj_destroy */
-static sdb_object_t *
-sdb_store_obj_clone(const sdb_object_t *obj)
-{
- const sdb_store_obj_t *sobj = SDB_CONST_STORE_OBJ(obj);
- sdb_store_obj_t *new;
-
- new = SDB_STORE_OBJ(store_obj_clone(obj, sobj->_last_update, sobj->type));
- if (! new)
- return NULL;
-
- if (sobj->children) {
- sdb_llist_destroy(new->children);
- new->children = sdb_llist_clone(sobj->children);
- if (! new->children) {
- sdb_object_deref(SDB_OBJ(new));
- return NULL;
- }
- }
- if (sobj->attributes) {
- sdb_llist_destroy(new->attributes);
- new->attributes = sdb_llist_clone(sobj->attributes);
- if (! new->attributes) {
- sdb_object_deref(SDB_OBJ(new));
- return NULL;
- }
- }
-
- return SDB_OBJ(new);
-} /* sdb_store_obj_clone */
-
static int
sdb_attr_init(sdb_object_t *obj, va_list ap)
{
free(SDB_ATTR(obj)->value);
} /* sdb_attr_destroy */
-static sdb_object_t *
-sdb_attr_clone(const sdb_object_t *obj)
-{
- const sdb_attribute_t *attr = (const sdb_attribute_t *)obj;
- sdb_attribute_t *new;
-
- new = SDB_ATTR(store_obj_clone(obj, attr->_last_update, attr->value));
- if (! new)
- return NULL;
- return SDB_OBJ(new);
-} /* sdb_attr_clone */
-
static sdb_type_t sdb_store_obj_type = {
sizeof(sdb_store_obj_t),
sdb_store_obj_init,
- sdb_store_obj_destroy,
- sdb_store_obj_clone
+ sdb_store_obj_destroy
};
static sdb_type_t sdb_attribute_type = {
sizeof(sdb_attribute_t),
sdb_attr_init,
- sdb_attr_destroy,
- sdb_attr_clone
+ sdb_attr_destroy
};
/*
index 23cd8565d92c0f18ad04d5764750891192bee981..3c00fb51abe807d00799d931278e2d5dddc8ffd6 100644 (file)
int (*init)(sdb_object_t *, va_list);
void (*destroy)(sdb_object_t *);
- sdb_object_t *(*clone)(const sdb_object_t *);
};
-#define SDB_TYPE_INIT { 0, NULL, NULL, NULL }
+#define SDB_TYPE_INIT { 0, NULL, NULL }
struct sdb_object {
sdb_type_t type;
void
sdb_object_ref(sdb_object_t *obj);
-/*
- * sdb_object_clone:
- * Clone an existing object using its type's 'clone' callback. The callback is
- * responsible for correctly initializing a new object (which may be done
- * using the object create function or the object's type's init function).
- *
- * Returns:
- * - the cloned object on success
- * - NULL on error or if no clone callback is available
- */
-sdb_object_t *
-sdb_object_clone(const sdb_object_t *obj);
-
/*
* sdb_object_cmp_by_name:
* Compare two objects by their name ignoring the case of the characters.