[Python] Properly destroy CVC4 object (#3753)
authorAndres Noetzli <andres.noetzli@gmail.com>
Thu, 13 Feb 2020 00:16:21 +0000 (16:16 -0800)
committerGitHub <noreply@github.com>
Thu, 13 Feb 2020 00:16:21 +0000 (18:16 -0600)
src/cvc4.i

index 9e69212aee4c10a3fc84dff1b92115f849f0f018..bed988b322b456bc8a71e37f49ea8f789f49b2bc 100644 (file)
@@ -69,10 +69,9 @@ std::set<JavaInputStreamAdapter*> CVC4::JavaInputStreamAdapter::s_adapters;
 
 #ifdef SWIGPYTHON
 %pythonappend CVC4::SmtEngine::SmtEngine %{
-  self.thisown = 0
-%}
-%pythonappend CVC4::ExprManager::ExprManager %{
-  self.thisown = 0
+  # Hold a reference to the ExprManager to make sure that Python keeps the
+  # ExprManager alive as long as the SmtEngine exists
+  self.em = em
 %}
 #endif /* SWIGPYTHON */