You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2015/07/08 18:04:46 UTC

lucy-clownfish git commit: Utility function CFCUtil_free_string_array

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 <we...@aevum.de>
Authored: Mon Jul 6 15:19:29 2015 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
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