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 2016/02/29 23:24:10 UTC

[1/2] lucy-clownfish git commit: Fix skip count in TestVector.c

Repository: lucy-clownfish
Updated Branches:
  refs/heads/master 4b0abced7 -> 43de47bc4


Fix skip count in TestVector.c


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

Branch: refs/heads/master
Commit: 6c5b03458323db81808857cb5b65082c7e04fd25
Parents: 4b0abce
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Mon Feb 29 22:10:49 2016 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Mon Feb 29 22:10:49 2016 +0100

----------------------------------------------------------------------
 runtime/core/Clownfish/Test/TestVector.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/6c5b0345/runtime/core/Clownfish/Test/TestVector.c
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/Test/TestVector.c b/runtime/core/Clownfish/Test/TestVector.c
index 7183504..a2a0a1e 100644
--- a/runtime/core/Clownfish/Test/TestVector.c
+++ b/runtime/core/Clownfish/Test/TestVector.c
@@ -458,7 +458,7 @@ S_test_exception(TestBatchRunner *runner, Err_Attempt_t func,
 static void
 test_exceptions(TestBatchRunner *runner) {
     if (getenv("LUCY_VALGRIND")) {
-        SKIP(runner, 4, "memory leak");
+        SKIP(runner, 5, "memory leak");
         return;
     }
     S_test_exception(runner, S_overflow_Push,


[2/2] lucy-clownfish git commit: Fix memory leaks in CFC

Posted by nw...@apache.org.
Fix memory leaks in CFC


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

Branch: refs/heads/master
Commit: 43de47bc42e51c6c418477991c7b80c6b279d371
Parents: 6c5b034
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Mon Feb 29 23:23:39 2016 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Mon Feb 29 23:23:39 2016 +0100

----------------------------------------------------------------------
 compiler/c/cfc.c                  |  2 ++
 compiler/src/CFCCHtml.c           |  5 ++++-
 compiler/src/CFCDocument.c        | 12 ++++++++++++
 compiler/src/CFCDocument.h        |  3 +++
 compiler/src/CFCPerlPod.c         |  2 ++
 compiler/src/CFCTestDocuComment.c |  2 ++
 6 files changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/43de47bc/compiler/c/cfc.c
----------------------------------------------------------------------
diff --git a/compiler/c/cfc.c b/compiler/c/cfc.c
index 7ff3a5e..6f5f527 100644
--- a/compiler/c/cfc.c
+++ b/compiler/c/cfc.c
@@ -18,6 +18,7 @@
 #include "CFCBindCore.h"
 #include "CFCC.h"
 #include "CFCClass.h"
+#include "CFCDocument.h"
 #include "CFCHierarchy.h"
 #include "CFCParcel.h"
 #include "CFCUtil.h"
@@ -255,6 +256,7 @@ main(int argc, char **argv) {
     FREEMEM(footer);
 
     CFCClass_clear_registry();
+    CFCDocument_clear_registry();
     CFCParcel_reap_singletons();
 
     S_free_arguments(&args);

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/43de47bc/compiler/src/CFCCHtml.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCCHtml.c b/compiler/src/CFCCHtml.c
index b44aea7..6f42ea6 100644
--- a/compiler/src/CFCCHtml.c
+++ b/compiler/src/CFCCHtml.c
@@ -318,12 +318,14 @@ CFCCHtml_write_html_docs(CFCCHtml *self) {
         char *html_doc = html_docs[i];
         CFCUtil_write_if_changed(path, html_doc, strlen(html_doc));
         FREEMEM(html_doc);
+        FREEMEM(dir);
         FREEMEM(path);
         FREEMEM(filename);
     }
 
     FREEMEM(html_docs);
     FREEMEM(filenames);
+    FREEMEM(md_docs);
     FREEMEM(ordered);
 }
 
@@ -475,7 +477,7 @@ S_create_standalone_doc(CFCCHtml *self, CFCDocument *doc) {
     char *title  = CFCUtil_global_replace(path, CHY_DIR_SEP, "::");
     char *header = CFCUtil_global_replace(self->header, "{title}", title);
 
-    const char *md = CFCDocument_get_contents(doc);
+    char *md = CFCDocument_get_contents(doc);
     int dir_level = 0;
     for (size_t i = 0; path[i]; i++) {
         if (path[i] == CHY_DIR_SEP_CHAR) { ++dir_level; }
@@ -485,6 +487,7 @@ S_create_standalone_doc(CFCCHtml *self, CFCDocument *doc) {
     char *html_doc = CFCUtil_sprintf("%s%s%s", header, body, self->footer);
 
     FREEMEM(body);
+    FREEMEM(md);
     FREEMEM(header);
     FREEMEM(title);
     return html_doc;

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/43de47bc/compiler/src/CFCDocument.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCDocument.c b/compiler/src/CFCDocument.c
index 6d1325c..0cdf9a0 100644
--- a/compiler/src/CFCDocument.c
+++ b/compiler/src/CFCDocument.c
@@ -81,6 +81,7 @@ CFCDocument_destroy(CFCDocument *self) {
     FREEMEM(self->path);
     FREEMEM(self->path_part);
     FREEMEM(self->name);
+    CFCBase_destroy((CFCBase*)self);
 }
 
 static void
@@ -123,6 +124,17 @@ CFCDocument_fetch(const char *name) {
     return NULL;
 }
 
+void
+CFCDocument_clear_registry(void) {
+    for (size_t i = 0; i < registry_size; i++) {
+        CFCBase_decref((CFCBase*)registry[i]);
+    }
+    FREEMEM(registry);
+    registry_size = 0;
+    registry_cap  = 0;
+    registry      = NULL;
+}
+
 char*
 CFCDocument_get_contents(CFCDocument *self) {
     size_t len;

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/43de47bc/compiler/src/CFCDocument.h
----------------------------------------------------------------------
diff --git a/compiler/src/CFCDocument.h b/compiler/src/CFCDocument.h
index b138803..7d575bb 100644
--- a/compiler/src/CFCDocument.h
+++ b/compiler/src/CFCDocument.h
@@ -42,6 +42,9 @@ CFCDocument_get_registry(void);
 CFCDocument*
 CFCDocument_fetch(const char *name);
 
+void
+CFCDocument_clear_registry(void);
+
 char*
 CFCDocument_get_contents(CFCDocument *self);
 

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/43de47bc/compiler/src/CFCPerlPod.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCPerlPod.c b/compiler/src/CFCPerlPod.c
index 855b698..c09eacf 100644
--- a/compiler/src/CFCPerlPod.c
+++ b/compiler/src/CFCPerlPod.c
@@ -606,6 +606,7 @@ CFCPerlPod_md_doc_to_pod(const char *module, const char *md) {
         cmark_node *header_child = cmark_node_first_child(maybe_header);
         char *short_desc = S_nodes_to_pod(header_child, NULL, 1);
         name = CFCUtil_sprintf("%s - %s", module, short_desc);
+        FREEMEM(short_desc);
 
         cmark_node *remaining = cmark_node_next(maybe_header);
         desc = S_nodes_to_pod(remaining, NULL, 1);
@@ -628,6 +629,7 @@ CFCPerlPod_md_doc_to_pod(const char *module, const char *md) {
 
     FREEMEM(name);
     FREEMEM(desc);
+    cmark_node_free(doc);
     return retval;
 }
 

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/43de47bc/compiler/src/CFCTestDocuComment.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCTestDocuComment.c b/compiler/src/CFCTestDocuComment.c
index 69ab177..2e697d5 100644
--- a/compiler/src/CFCTestDocuComment.c
+++ b/compiler/src/CFCTestDocuComment.c
@@ -17,6 +17,7 @@
 #define CFC_USE_TEST_MACROS
 #include "CFCBase.h"
 #include "CFCDocuComment.h"
+#include "CFCDocument.h"
 #include "CFCCHtml.h"
 #include "CFCCMan.h"
 #include "CFCClass.h"
@@ -313,6 +314,7 @@ S_test_generator(CFCTest *test) {
     CFCBase_decref((CFCBase*)parcel);
     CFCBase_decref((CFCBase*)hierarchy);
 
+    CFCDocument_clear_registry();
     CFCParcel_reap_singletons();
 }