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