diff options
Diffstat (limited to 'src/lib/eolian/database_class.c')
-rw-r--r-- | src/lib/eolian/database_class.c | 11 |
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); } |