destructor call order is important here
authorWolfgang Bumiller <wry.git@bumiller.com>
Sun, 1 Feb 2015 10:52:58 +0000 (11:52 +0100)
committerWolfgang Bumiller <wry.git@bumiller.com>
Sun, 1 Feb 2015 10:52:58 +0000 (11:52 +0100)
ast.cpp

diff --git a/ast.cpp b/ast.cpp
index acf4928..58ed660 100644 (file)
--- a/ast.cpp
+++ b/ast.cpp
@@ -946,6 +946,10 @@ ast_function::~ast_function()
         ast_unref(m_fixedparams);
     if (m_return_value)
         ast_unref(m_return_value);
+
+    // force this to be cleared before m_varargs/m_argc as blocks might
+    // try to access them via ast_unref()
+    m_blocks.clear();
 }
 
 const char* ast_function::makeLabel(const char *prefix)