diff --git a/src/core/store.c b/src/core/store.c
index 4e841bac0022040ca77cd5fedcfa55aab1f4e2a1..db57d2e5ba9506bc7adafba2a48a58263a1edca0 100644 (file)
--- a/src/core/store.c
+++ b/src/core/store.c
return strcasecmp(obj->name, lookup->obj_name);
} /* sdb_cmp_store_obj_with_name */
+/*
+ * private types
+ */
+
static int
sdb_host_init(sdb_object_t *obj, va_list ap)
{
free(SDB_SVC(obj)->_name);
} /* sdb_svc_destroy */
+static sdb_type_t sdb_host_type = {
+ sizeof(sdb_host_t),
+
+ sdb_host_init,
+ sdb_host_destroy
+};
+
+static sdb_type_t sdb_attr_type = {
+ sizeof(sdb_attribute_t),
+
+ sdb_attr_init,
+ sdb_attr_destroy
+};
+
+static sdb_type_t sdb_svc_type = {
+ sizeof(sdb_service_t),
+
+ sdb_svc_init,
+ sdb_svc_destroy
+};
+
/*
* public API
*/
if (! name)
return NULL;
- obj = sdb_object_create(sizeof(sdb_host_t), sdb_host_init,
- sdb_host_destroy, name);
+ obj = sdb_object_create(sdb_host_type, name);
if (! obj)
return NULL;
return SDB_HOST(obj);
if ((! hostname) || (! name) || (! value))
return NULL;
- obj = sdb_object_create(sizeof(sdb_attribute_t), sdb_attr_init,
- sdb_attr_destroy, hostname, name, value);
+ obj = sdb_object_create(sdb_attr_type, hostname, name, value);
if (! obj)
return NULL;
return SDB_ATTR(obj);
if ((! hostname) || (! name))
return NULL;
- obj = sdb_object_create(sizeof(sdb_service_t), sdb_svc_init,
- sdb_svc_destroy, hostname, name);
+ obj = sdb_object_create(sdb_svc_type, hostname, name);
if (! obj)
return NULL;
return SDB_SVC(obj);