[PATCH 5/7] cex: fix miscellaneous leaks

Vincent Imbimbo <[email protected]>
Newsgroups gmane.comp.parsers.bison.patches
Message-ID <[email protected]>
* src/counterexample.c: (unifying_counterexample) always free stage3result when it exists.
* src/conflicts.c: (report_state_counterexamples) free leaked bitset.
* src/state-item.c: (prune_disabled_paths) free leaked queue.

---
 src/conflicts.c      | 1 +
 src/counterexample.c | 7 +++----
 src/state-item.c     | 1 +
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/conflicts.c b/src/conflicts.c
index b6cccd76..f007e204 100644
--- a/src/conflicts.c
+++ b/src/conflicts.c
@@ -677,6 +677,7 @@ report_state_counterexamples (const state *s)
                     }
                 }
             }
+          bitset_free (conf);
         }
     }
 }
diff --git a/src/counterexample.c b/src/counterexample.c
index 0909652c..e87d5d2b 100644
--- a/src/counterexample.c
+++ b/src/counterexample.c
@@ -1110,10 +1110,7 @@ cex_search_end:;
       // If a search state from Stage 3 is available, use it
       // to construct a more compact nonunifying counterexample.
       if (stage3result)
-        {
-          cex = complete_diverging_examples (stage3result, next_sym);
-          search_state_free (stage3result);
-        }
+        cex = complete_diverging_examples (stage3result, next_sym);
       // Otherwise, construct a nonunifying counterexample that
       // begins from the start state using the shortest
       // lookahead-sensitive path to the reduce item.
@@ -1122,6 +1119,8 @@ cex_search_end:;
     }
   gl_list_free (ssb_queue);
   hash_free (visited);
+  if (stage3result)
+    search_state_free (stage3result);
   return cex;
 }
 
diff --git a/src/state-item.c b/src/state-item.c
index 13362ec0..62d2d210 100644
--- a/src/state-item.c
+++ b/src/state-item.c
@@ -449,6 +449,7 @@ prune_disabled_paths (void)
                   }
               }
             }
+          gl_list_free (queue);
         }
     }
 }
-- 
2.20.1 (Apple Git-117)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.