From 081654efe3e47e9ed85b6efccb9438ee19ddb164 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Tue, 20 Jul 2021 14:29:31 +0000
Subject: [PATCH] Fixed table memory leak

---
 main.cpp |    2 +-
 ast.cpp  |    3 ++-
 gens.h   |    1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/ast.cpp b/ast.cpp
index 57bd9ae..2c349da 100644
--- a/ast.cpp
+++ b/ast.cpp
@@ -174,7 +174,8 @@
 		for (std::vector<Line_Word*>::size_type j = 0; j < t->size(); j++) {
 			delete (*t)[j];
 		}
-		table[i]->clear();
+		t->clear();
+		delete t;
 	}
 	table.clear();
 }
diff --git a/gens.h b/gens.h
index d69d229..6ffed04 100644
--- a/gens.h
+++ b/gens.h
@@ -4,6 +4,7 @@
 
 class gen: public ast_visitor {
 public:
+	virtual ~gen()=default;
 	virtual void set_file(std::string file_name)=0;
 	virtual void* visit_Document(Document *d)=0;
 	virtual void* visit_Block_Table(Block_Table *bt)=0;
diff --git a/main.cpp b/main.cpp
index 9105006..014c2a3 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,7 +8,7 @@
 {
 	Document *d;
 	parser *p = new tester();
-	gen *g = new dot_gen();
+	dot_gen *g = new dot_gen();
 	g->set_file("temp.dot");
 	d = p->parse();
 	d->visit(g);

--
Gitblit v1.10.0