summaryrefslogtreecommitdiff
path: root/src/lib/eolian/database_class.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/eolian/database_class.c')
-rw-r--r--src/lib/eolian/database_class.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/lib/eolian/database_class.c b/src/lib/eolian/database_class.c
index ac5e3055e9..5bd22dfe7f 100644
--- a/src/lib/eolian/database_class.c
+++ b/src/lib/eolian/database_class.c
@@ -13,11 +13,11 @@ database_class_del(Eolian_Class *cl)
Eolian_Part *pt;
Eolian_Implement *impl;
Eolian_Constructor *ctor;
- const char *s;
- if (!cl) return;
+ if (!cl || eolian_object_unref(&cl->base)) return;
- if (cl->base.file) eina_stringshare_del(cl->base.file);
+ eina_stringshare_del(cl->base.file);
+ eina_stringshare_del(cl->base.name);
EINA_LIST_FREE(cl->implements, impl)
database_implement_del(impl);
@@ -30,8 +30,6 @@ database_class_del(Eolian_Class *cl)
EINA_LIST_FREE(cl->events, ev) database_event_del(ev);
EINA_LIST_FREE(cl->parts, pt) database_part_del(pt);
- if (cl->name) eina_stringshare_del(cl->name);
- if (cl->full_name) eina_stringshare_del(cl->full_name);
if (cl->legacy_prefix) eina_stringshare_del(cl->legacy_prefix);
if (cl->eo_prefix) eina_stringshare_del(cl->eo_prefix);
if (cl->ev_prefix) eina_stringshare_del(cl->ev_prefix);
@@ -39,8 +37,5 @@ database_class_del(Eolian_Class *cl)
database_doc_del(cl->doc);
- if (cl->namespaces) EINA_LIST_FREE(cl->namespaces, s)
- if (s) eina_stringshare_del(s);
-
free(cl);
}