summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile_Eolian.am1
-rw-r--r--src/lib/eolian/database_class.c2
-rw-r--r--src/lib/eolian/database_part.c15
-rw-r--r--src/lib/eolian/eolian_database.h2
4 files changed, 20 insertions, 0 deletions
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 = \
29 lib/eolian/database_constructor_api.c \ 29 lib/eolian/database_constructor_api.c \
30 lib/eolian/database_event.c \ 30 lib/eolian/database_event.c \
31 lib/eolian/database_event_api.c \ 31 lib/eolian/database_event_api.c \
32 lib/eolian/database_part.c \
32 lib/eolian/database_expr.c \ 33 lib/eolian/database_expr.c \
33 lib/eolian/database_expr_api.c \ 34 lib/eolian/database_expr_api.c \
34 lib/eolian/database_var.c \ 35 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)
10{ 10{
11 Eolian_Function *fid; 11 Eolian_Function *fid;
12 Eolian_Event *ev; 12 Eolian_Event *ev;
13 Eolian_Part *pt;
13 Eolian_Implement *impl; 14 Eolian_Implement *impl;
14 Eolian_Constructor *ctor; 15 Eolian_Constructor *ctor;
15 const char *s; 16 const char *s;
@@ -27,6 +28,7 @@ database_class_del(Eolian_Class *cl)
27 EINA_LIST_FREE(cl->methods, fid) database_function_del(fid); 28 EINA_LIST_FREE(cl->methods, fid) database_function_del(fid);
28 EINA_LIST_FREE(cl->properties, fid) database_function_del(fid); 29 EINA_LIST_FREE(cl->properties, fid) database_function_del(fid);
29 EINA_LIST_FREE(cl->events, ev) database_event_del(ev); 30 EINA_LIST_FREE(cl->events, ev) database_event_del(ev);
31 EINA_LIST_FREE(cl->parts, pt) database_part_del(pt);
30 32
31 if (cl->name) eina_stringshare_del(cl->name); 33 if (cl->name) eina_stringshare_del(cl->name);
32 if (cl->full_name) eina_stringshare_del(cl->full_name); 34 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 @@
1#ifdef HAVE_CONFIG_H
2# include "config.h"
3#endif
4
5#include <Eina.h>
6#include "eolian_database.h"
7
8void
9database_part_del(Eolian_Part *part)
10{
11 if (!part) return;
12 if (part->name) eina_stringshare_del(part->name);
13 database_doc_del(part->doc);
14 free(part);
15}
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);
358/* events */ 358/* events */
359void database_event_del(Eolian_Event *event); 359void database_event_del(Eolian_Event *event);
360 360
361/* parts */
362void database_part_del(Eolian_Part *part);
361 363
362#endif 364#endif