q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c8e7ad530e35305870471a40a870112495dc221e

commit c8e7ad530e35305870471a40a870112495dc221e
Author: Daniel Kolesa <d.kol...@osg.samsung.com>
Date:   Tue Oct 31 12:14:51 2017 +0100

    eolian: properly free parts
---
 src/Makefile_Eolian.am           |  1 +
 src/lib/eolian/database_class.c  |  2 ++
 src/lib/eolian/database_part.c   | 15 +++++++++++++++
 src/lib/eolian/eolian_database.h |  2 ++
 4 files changed, 20 insertions(+)

diff --git a/src/Makefile_Eolian.am b/src/Makefile_Eolian.am
index a067ec0b7b..e276e4480d 100644
--- a/src/Makefile_Eolian.am
+++ b/src/Makefile_Eolian.am
@@ -29,6 +29,7 @@ lib_eolian_libeolian_la_SOURCES = \
                                   lib/eolian/database_constructor_api.c \
                                   lib/eolian/database_event.c \
                                   lib/eolian/database_event_api.c \
+                                  lib/eolian/database_part.c \
                                   lib/eolian/database_expr.c \
                                   lib/eolian/database_expr_api.c \
                                   lib/eolian/database_var.c \
diff --git a/src/lib/eolian/database_class.c b/src/lib/eolian/database_class.c
index fc56325523..ac5e3055e9 100644
--- a/src/lib/eolian/database_class.c
+++ b/src/lib/eolian/database_class.c
@@ -10,6 +10,7 @@ database_class_del(Eolian_Class *cl)
 {
    Eolian_Function *fid;
    Eolian_Event *ev;
+   Eolian_Part *pt;
    Eolian_Implement *impl;
    Eolian_Constructor *ctor;
    const char *s;
@@ -27,6 +28,7 @@ database_class_del(Eolian_Class *cl)
    EINA_LIST_FREE(cl->methods, fid) database_function_del(fid);
    EINA_LIST_FREE(cl->properties, fid) database_function_del(fid);
    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);
diff --git a/src/lib/eolian/database_part.c b/src/lib/eolian/database_part.c
new file mode 100644
index 0000000000..dca036aba5
--- /dev/null
+++ b/src/lib/eolian/database_part.c
@@ -0,0 +1,15 @@
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <Eina.h>
+#include "eolian_database.h"
+
+void
+database_part_del(Eolian_Part *part)
+{
+   if (!part) return;
+   if (part->name) eina_stringshare_del(part->name);
+   database_doc_del(part->doc);
+   free(part);
+}
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index 7d134d4282..05c153b8f2 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -358,5 +358,7 @@ void database_constructor_del(Eolian_Constructor *ctor);
 /* events */
 void database_event_del(Eolian_Event *event);
 
+/* parts */
+void database_part_del(Eolian_Part *part);
 
 #endif

-- 


Reply via email to