summaryrefslogtreecommitdiff
path: root/kernel/yosys.cc
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/yosys.cc')
-rw-r--r--kernel/yosys.cc16
1 files changed, 14 insertions, 2 deletions
diff --git a/kernel/yosys.cc b/kernel/yosys.cc
index 67194563..89a9cdf7 100644
--- a/kernel/yosys.cc
+++ b/kernel/yosys.cc
@@ -37,13 +37,22 @@ Tcl_Interp *yosys_tcl_interp = NULL;
std::string stringf(const char *fmt, ...)
{
std::string string;
- char *str = NULL;
va_list ap;
va_start(ap, fmt);
+ string = vstringf(fmt, ap);
+ va_end(ap);
+
+ return string;
+}
+
+std::string vstringf(const char *fmt, va_list ap)
+{
+ std::string string;
+ char *str = NULL;
+
if (vasprintf(&str, fmt, ap) < 0)
str = NULL;
- va_end(ap);
if (str != NULL) {
string = str;
@@ -71,6 +80,9 @@ void yosys_shutdown()
{
log_pop();
+ delete yosys_design;
+ yosys_design = NULL;
+
for (auto f : log_files)
if (f != stderr)
fclose(f);