Browse Source

Fix memory leaks.

Stefano Cossu 2 years ago
parent
commit
9854fbebfa
3 changed files with 12 additions and 0 deletions
  1. 5 0
      include/term.h
  2. 1 0
      src/graph.c
  3. 6 0
      src/term.c

+ 5 - 0
include/term.h

@@ -617,6 +617,11 @@ LSUP_LinkMapIterator *
 LSUP_link_map_iter_new (const LSUP_LinkMap *lmap);
 
 
+/// Free a link map iterator.
+void
+LSUP_link_map_iter_free (LSUP_LinkMapIterator *it);
+
+
 /**@brief Iterate over a link map and generate triples.
  *
  * Calling this function repeatedly builds triples for all the linked terms and

+ 1 - 0
src/graph.c

@@ -631,6 +631,7 @@ LSUP_graph_add_link_map (
         if (rc >= 0) ct++;
         PRCCK (rc);
     }
+    LSUP_link_map_iter_free (lmit);
     free (spo);
 
     return ct;

+ 6 - 0
src/term.c

@@ -139,6 +139,7 @@ link_map_free_fn (void *item)
 {
     Link *link = item;
     LSUP_term_free (link->term->term);
+    free (link->term);
     LSUP_term_set_free (link->tset);
 }
 
@@ -669,6 +670,11 @@ LSUP_link_map_iter_new (const LSUP_LinkMap *lmap)
 }
 
 
+void
+LSUP_link_map_iter_free (LSUP_LinkMapIterator *it)
+{ free (it); }
+
+
 LSUP_rc
 LSUP_link_map_triples (
         LSUP_LinkMapIterator *it, LSUP_Term *term, LSUP_Triple *spo)