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; }
