Repository: lucy-clownfish Updated Branches: refs/heads/master 61067b853 -> 613601b4e
Utility function CFCUtil_free_string_array Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/613601b4 Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/613601b4 Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/613601b4 Branch: refs/heads/master Commit: 613601b4e673507a93aa6d2d40c0e8567b141c36 Parents: 61067b8 Author: Nick Wellnhofer <[email protected]> Authored: Mon Jul 6 15:19:29 2015 +0200 Committer: Nick Wellnhofer <[email protected]> Committed: Wed Jul 8 17:24:58 2015 +0200 ---------------------------------------------------------------------- compiler/src/CFCDocuComment.c | 14 ++------------ compiler/src/CFCHierarchy.c | 30 +++++------------------------- compiler/src/CFCParamList.c | 3 +-- compiler/src/CFCParcel.c | 10 ++-------- compiler/src/CFCPerlClass.c | 5 +---- compiler/src/CFCUri.c | 5 +---- compiler/src/CFCUtil.c | 10 ++++++++++ compiler/src/CFCUtil.h | 5 +++++ 8 files changed, 27 insertions(+), 55 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/613601b4/compiler/src/CFCDocuComment.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCDocuComment.c b/compiler/src/CFCDocuComment.c index 4a28cf2..d88335f 100644 --- a/compiler/src/CFCDocuComment.c +++ b/compiler/src/CFCDocuComment.c @@ -214,18 +214,8 @@ CFCDocuComment_parse(const char *raw_text) { void CFCDocuComment_destroy(CFCDocuComment *self) { - if (self->param_names) { - for (size_t i = 0; self->param_names[i] != NULL; i++) { - FREEMEM(self->param_names[i]); - } - FREEMEM(self->param_names); - } - if (self->param_docs) { - for (size_t i = 0; self->param_docs[i] != NULL; i++) { - FREEMEM(self->param_docs[i]); - } - FREEMEM(self->param_docs); - } + CFCUtil_free_string_array(self->param_names); + CFCUtil_free_string_array(self->param_docs); FREEMEM(self->description); FREEMEM(self->brief); FREEMEM(self->long_des); http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/613601b4/compiler/src/CFCHierarchy.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCHierarchy.c b/compiler/src/CFCHierarchy.c index 5dc2145..ea4f8d7 100644 --- a/compiler/src/CFCHierarchy.c +++ b/compiler/src/CFCHierarchy.c @@ -82,9 +82,6 @@ static void S_find_files(const char *path, void *arg); static void -S_free_find_files_context(CFCFindFilesContext *context); - -static void S_connect_classes(CFCHierarchy *self); static void @@ -153,21 +150,12 @@ CFCHierarchy_destroy(CFCHierarchy *self) { for (size_t i = 0; self->classes[i] != NULL; i++) { CFCBase_decref((CFCBase*)self->classes[i]); } - for (size_t i = 0; self->sources[i] != NULL; i++) { - FREEMEM(self->sources[i]); - } - for (size_t i = 0; self->includes[i] != NULL; i++) { - FREEMEM(self->includes[i]); - } - for (size_t i = 0; self->prereqs[i] != NULL; i++) { - FREEMEM(self->prereqs[i]); - } + CFCUtil_free_string_array(self->sources); + CFCUtil_free_string_array(self->includes); + CFCUtil_free_string_array(self->prereqs); FREEMEM(self->trees); FREEMEM(self->files); FREEMEM(self->classes); - FREEMEM(self->sources); - FREEMEM(self->includes); - FREEMEM(self->prereqs); FREEMEM(self->dest); FREEMEM(self->inc_dest); FREEMEM(self->src_dest); @@ -307,7 +295,7 @@ S_parse_parcel_files(const char *source_dir, int is_included) { CFCBase_decref((CFCBase*)file_spec); } - S_free_find_files_context(&context); + CFCUtil_free_string_array(context.paths); } static void @@ -412,7 +400,7 @@ S_parse_cf_files(CFCHierarchy *self, const char *source_dir, int is_included) { } self->classes[self->num_classes] = NULL; - S_free_find_files_context(&context); + CFCUtil_free_string_array(context.paths); FREEMEM(path_part); } @@ -437,14 +425,6 @@ S_find_files(const char *path, void *arg) { } static void -S_free_find_files_context(CFCFindFilesContext *context) { - for (int i = 0; context->paths[i] != NULL; i++) { - FREEMEM(context->paths[i]); - } - FREEMEM(context->paths); -} - -static void S_connect_classes(CFCHierarchy *self) { // Wrangle the classes into hierarchies and figure out inheritance. for (int i = 0; self->classes[i] != NULL; i++) { http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/613601b4/compiler/src/CFCParamList.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCParamList.c b/compiler/src/CFCParamList.c index 281de73..30998d5 100644 --- a/compiler/src/CFCParamList.c +++ b/compiler/src/CFCParamList.c @@ -85,12 +85,11 @@ CFCParamList_add_param(CFCParamList *self, CFCVariable *variable, void CFCParamList_destroy(CFCParamList *self) { + CFCUtil_free_string_array(self->values); for (size_t i = 0; i < self->num_vars; i++) { CFCBase_decref((CFCBase*)self->variables[i]); - FREEMEM(self->values[i]); } FREEMEM(self->variables); - FREEMEM(self->values); FREEMEM(self->c_string); FREEMEM(self->name_list); CFCBase_destroy((CFCBase*)self); http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/613601b4/compiler/src/CFCParcel.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCParcel.c b/compiler/src/CFCParcel.c index 15e10da..3e2e8ba 100644 --- a/compiler/src/CFCParcel.c +++ b/compiler/src/CFCParcel.c @@ -364,18 +364,12 @@ CFCParcel_destroy(CFCParcel *self) { FREEMEM(self->Prefix); FREEMEM(self->PREFIX); FREEMEM(self->privacy_sym); - for (size_t i = 0; self->inherited_parcels[i]; ++i) { - FREEMEM(self->inherited_parcels[i]); - } - FREEMEM(self->inherited_parcels); + CFCUtil_free_string_array(self->inherited_parcels); + CFCUtil_free_string_array(self->struct_syms); for (size_t i = 0; self->prereqs[i]; ++i) { CFCBase_decref((CFCBase*)self->prereqs[i]); } FREEMEM(self->prereqs); - for (size_t i = 0; self->struct_syms[i]; ++i) { - FREEMEM(self->struct_syms[i]); - } - FREEMEM(self->struct_syms); CFCBase_destroy((CFCBase*)self); } http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/613601b4/compiler/src/CFCPerlClass.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCPerlClass.c b/compiler/src/CFCPerlClass.c index 6484c78..dc1d234 100644 --- a/compiler/src/CFCPerlClass.c +++ b/compiler/src/CFCPerlClass.c @@ -103,10 +103,7 @@ CFCPerlClass_destroy(CFCPerlClass *self) { } FREEMEM(self->cons_aliases); FREEMEM(self->cons_inits); - for (size_t i = 0; i < self->num_class_aliases; i++) { - FREEMEM(self->class_aliases[i]); - } - FREEMEM(self->class_aliases); + CFCUtil_free_string_array(self->class_aliases); CFCBase_destroy((CFCBase*)self); } http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/613601b4/compiler/src/CFCUri.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCUri.c b/compiler/src/CFCUri.c index be3e8c8..530196e 100644 --- a/compiler/src/CFCUri.c +++ b/compiler/src/CFCUri.c @@ -172,10 +172,7 @@ S_parse_uri(CFCUri *self, const char *uri, CFCClass *klass) { CFCUtil_die("Invalid clownfish URI: %s", uri); } - for (i = 0; i < num_components; ++i) { - FREEMEM(components[i]); - } - FREEMEM(components); + CFCUtil_free_string_array(components); } static char** http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/613601b4/compiler/src/CFCUtil.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCUtil.c b/compiler/src/CFCUtil.c index 89c5721..8686da3 100644 --- a/compiler/src/CFCUtil.c +++ b/compiler/src/CFCUtil.c @@ -495,6 +495,16 @@ CFCUtil_walk(const char *path, CFCUtil_walk_callback_t callback, CFCUtil_closedir(dirhandle, path); } +void +CFCUtil_free_string_array(char **strings) { + if (strings == NULL) { return; } + + for (size_t i = 0; strings[i] != NULL; i++) { + FREEMEM(strings[i]); + } + FREEMEM(strings); +} + int CFCUtil_make_dir(const char *dir) { return !chy_makedir(dir, 0777); http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/613601b4/compiler/src/CFCUtil.h ---------------------------------------------------------------------- diff --git a/compiler/src/CFCUtil.h b/compiler/src/CFCUtil.h index ac87ca2..15f45a9 100644 --- a/compiler/src/CFCUtil.h +++ b/compiler/src/CFCUtil.h @@ -209,6 +209,11 @@ void CFCUtil_walk(const char *dir, CFCUtil_walk_callback_t callback, void *context); +/* Free an array of strings. + */ +void +CFCUtil_free_string_array(char **strings); + /* Print an error message to stderr and exit. */ void
