diff options
author | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2017-10-31 12:14:51 +0100 |
---|---|---|
committer | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2017-10-31 12:15:23 +0100 |
commit | c8e7ad530e35305870471a40a870112495dc221e (patch) | |
tree | 93f4d9b76a7094bdffaf29d539bc37f59bdf693b | |
parent | 0a92c0c61fd8ed6dc853f4ba4ec7d9271c1a4caa (diff) |
eolian: properly free parts
-rw-r--r-- | src/Makefile_Eolian.am | 1 | ||||
-rw-r--r-- | src/lib/eolian/database_class.c | 2 | ||||
-rw-r--r-- | src/lib/eolian/database_part.c | 15 | ||||
-rw-r--r-- | src/lib/eolian/eolian_database.h | 2 |
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 | |||
8 | void | ||
9 | database_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 */ |
359 | void database_event_del(Eolian_Event *event); | 359 | void database_event_del(Eolian_Event *event); |
360 | 360 | ||
361 | /* parts */ | ||
362 | void database_part_del(Eolian_Part *part); | ||
361 | 363 | ||
362 | #endif | 364 | #endif |