Repository: lucy-clownfish
Updated Branches:
  refs/heads/master 2f1e3d82d -> 8232c397f


Fix memory leaks


Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/8232c397
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/8232c397
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/8232c397

Branch: refs/heads/master
Commit: 8232c397f777177bb8567e7cab148860a4c4e2bc
Parents: 2f1e3d8
Author: Nick Wellnhofer <[email protected]>
Authored: Sat May 9 21:11:51 2015 +0200
Committer: Nick Wellnhofer <[email protected]>
Committed: Sat May 9 21:11:51 2015 +0200

----------------------------------------------------------------------
 compiler/src/CFCBindClass.c  | 1 +
 compiler/src/CFCBindCore.c   | 4 +++-
 compiler/src/CFCBindMethod.c | 6 +++++-
 3 files changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/8232c397/compiler/src/CFCBindClass.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCBindClass.c b/compiler/src/CFCBindClass.c
index 638096b..3aa62db 100644
--- a/compiler/src/CFCBindClass.c
+++ b/compiler/src/CFCBindClass.c
@@ -261,6 +261,7 @@ S_to_c_header_dynamic(CFCBindClass *self) {
     FREEMEM(inert_var_defs);
     FREEMEM(method_typedefs);
     FREEMEM(method_defs);
+    FREEMEM(override_decs);
     FREEMEM(short_names);
     return content;
 }

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/8232c397/compiler/src/CFCBindCore.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCBindCore.c b/compiler/src/CFCBindCore.c
index 6feeb02..01f4c76 100644
--- a/compiler/src/CFCBindCore.c
+++ b/compiler/src/CFCBindCore.c
@@ -349,7 +349,7 @@ S_write_parcel_h(CFCBindCore *self, CFCParcel *parcel) {
         "#endif\n"
         "\n";
 
-    const char *extra_defs;
+    char *extra_defs;
     char *extra_includes;
     if (strcmp(prefix, "cfish_") == 0) {
         extra_defs = CFCUtil_sprintf("%s%s", cfish_defs_1, cfish_defs_2);
@@ -424,6 +424,8 @@ S_write_parcel_h(CFCBindCore *self, CFCParcel *parcel) {
     FREEMEM(filepath);
 
     FREEMEM(typedefs);
+    FREEMEM(class_decls);
+    FREEMEM(extra_defs);
     FREEMEM(extra_includes);
     FREEMEM(file_content);
 }

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/8232c397/compiler/src/CFCBindMethod.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCBindMethod.c b/compiler/src/CFCBindMethod.c
index f98a7bd..cede011 100644
--- a/compiler/src/CFCBindMethod.c
+++ b/compiler/src/CFCBindMethod.c
@@ -233,11 +233,14 @@ CFCBindMeth_abstract_method_def(CFCMethod *method, 
CFCClass *klass) {
         strcat(unused, var_name);
         strcat(unused, ");");
     }
-    char *unreachable = CFCUtil_strdup("");
+    char *unreachable;
     if (!CFCType_is_void(ret_type)) {
         unreachable = CFCUtil_sprintf("    CFISH_UNREACHABLE_RETURN(%s);\n",
                                       ret_type_str);
     }
+    else {
+        unreachable = CFCUtil_strdup("");
+    }
 
     char *full_func_sym = CFCMethod_imp_func(method, klass);
 
@@ -254,6 +257,7 @@ CFCBindMeth_abstract_method_def(CFCMethod *method, CFCClass 
*klass) {
                           unreachable);
 
     FREEMEM(unused);
+    FREEMEM(unreachable);
     FREEMEM(full_func_sym);
     return abstract_def;
 }

Reply via email to