Repository: lucy-clownfish
Updated Branches:
  refs/heads/master 976199e97 -> 926947a14


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/926947a1
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/926947a1
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/926947a1

Branch: refs/heads/master
Commit: 926947a14696f218d95cd91973d8b6a49594b956
Parents: 976199e
Author: Nick Wellnhofer <wellnho...@aevum.de>
Authored: Fri Nov 27 17:00:30 2015 +0100
Committer: Nick Wellnhofer <wellnho...@aevum.de>
Committed: Fri Nov 27 17:00:30 2015 +0100

----------------------------------------------------------------------
 compiler/src/CFCParamList.c      | 3 ++-
 compiler/src/CFCPerl.c           | 4 ++++
 compiler/src/CFCPerlMethod.c     | 1 +
 runtime/core/Clownfish/Class.cfh | 2 +-
 4 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/926947a1/compiler/src/CFCParamList.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCParamList.c b/compiler/src/CFCParamList.c
index 6c23f7f..0a5bed2 100644
--- a/compiler/src/CFCParamList.c
+++ b/compiler/src/CFCParamList.c
@@ -91,11 +91,12 @@ 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/926947a1/compiler/src/CFCPerl.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCPerl.c b/compiler/src/CFCPerl.c
index 0b9f7b8..f19af61 100644
--- a/compiler/src/CFCPerl.c
+++ b/compiler/src/CFCPerl.c
@@ -558,6 +558,8 @@ CFCPerl_write_bindings(CFCPerl *self) {
 
             // Add XSUB initialization at boot.
             xs_init = S_add_xs_init(xs_init, xsub);
+
+            CFCBase_decref((CFCBase*)constructors[j]);
         }
         FREEMEM(constructors);
 
@@ -574,6 +576,8 @@ CFCPerl_write_bindings(CFCPerl *self) {
 
             // Add XSUB initialization at boot.
             xs_init = S_add_xs_init(xs_init, xsub);
+
+            CFCBase_decref((CFCBase*)methods[j]);
         }
         FREEMEM(methods);
     }

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/926947a1/compiler/src/CFCPerlMethod.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCPerlMethod.c b/compiler/src/CFCPerlMethod.c
index d549563..6c77e60 100644
--- a/compiler/src/CFCPerlMethod.c
+++ b/compiler/src/CFCPerlMethod.c
@@ -292,6 +292,7 @@ S_xsub_def_labeled_params(CFCPerlMethod *self, CFCClass 
*klass) {
     FREEMEM(arg_decls);
     FREEMEM(meth_type_c);
     FREEMEM(self_assign);
+    FREEMEM(arg_assigns);
     FREEMEM(body);
     FREEMEM(retval_decl);
     return xsub_def;

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/926947a1/runtime/core/Clownfish/Class.cfh
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/Class.cfh b/runtime/core/Clownfish/Class.cfh
index 90a4ce1..704704d 100644
--- a/runtime/core/Clownfish/Class.cfh
+++ b/runtime/core/Clownfish/Class.cfh
@@ -130,7 +130,7 @@ public final class Clownfish::Class inherits Clownfish::Obj 
{
 
     /** Return novel methods of the class.
      */
-    Vector*
+    incremented Vector*
     Get_Methods(Class *self);
 
     public void

Reply via email to