diff --git a/NEWS b/NEWS index 68b6a1bae..1cf2246ad 100644 --- a/NEWS +++ b/NEWS @@ -30,6 +30,14 @@ New in spot 2.10.3.dev (not yet released) alphabet, in applications where using atomic propositions is inconvenient. + Bugs fixed: + + - Fix memory leaks in Python bindings for several iteration objects. + This occured while itering on twa_graph.out(), twa_graph.edges(), + twa_graph.univ_dests(), kripke_graph.out(), kripke_graph.edges(), + mark_t.sets(), scc_info.edges_of(), scc_info.inner_edges_of(), and + on an scc_info instance. + New in spot 2.10.3 (2022-01-15) Bugs fixed: diff --git a/THANKS b/THANKS index c526bf75e..193dccaf7 100644 --- a/THANKS +++ b/THANKS @@ -57,5 +57,6 @@ Victor Khomenko Vitus Lam Yann Thierry-Mieg Yannick Molinghen +Yechuan Xia Yong Li Yuri Victorovich diff --git a/python/spot/impl.i b/python/spot/impl.i index ebdd61d1c..90a38a55a 100644 --- a/python/spot/impl.i +++ b/python/spot/impl.i @@ -1022,6 +1022,7 @@ static void* ptr_for_bdddict(PyObject* obj) } %extend spot::internal::state_out> { + %newobject __iter__(PyObject **PYTHON_SELF); swig::SwigPyIterator* __iter__(PyObject **PYTHON_SELF) { return swig::make_forward_iterator(self->begin(), self->begin(), @@ -1030,6 +1031,7 @@ static void* ptr_for_bdddict(PyObject* obj) } %extend spot::internal::state_out> { + %newobject __iter__(PyObject **PYTHON_SELF); swig::SwigPyIterator* __iter__(PyObject **PYTHON_SELF) { return swig::make_forward_iterator(self->begin(), self->begin(), @@ -1055,6 +1057,7 @@ static void* ptr_for_bdddict(PyObject* obj) } %extend spot::internal::all_trans> { + %newobject __iter__(PyObject **PYTHON_SELF); swig::SwigPyIterator* __iter__(PyObject **PYTHON_SELF) { return swig::make_forward_iterator(self->begin(), self->begin(), @@ -1063,6 +1066,7 @@ static void* ptr_for_bdddict(PyObject* obj) } %extend spot::internal::all_trans> { + %newobject __iter__(PyObject **PYTHON_SELF); swig::SwigPyIterator* __iter__(PyObject **PYTHON_SELF) { return swig::make_forward_iterator(self->begin(), self->begin(), @@ -1071,6 +1075,7 @@ static void* ptr_for_bdddict(PyObject* obj) } %extend spot::internal::const_universal_dests { + %newobject __iter__(PyObject **PYTHON_SELF); swig::SwigPyIterator* __iter__(PyObject **PYTHON_SELF) { return swig::make_forward_iterator_np(self->begin(), self->begin(), @@ -1079,6 +1084,7 @@ static void* ptr_for_bdddict(PyObject* obj) } %extend spot::internal::mark_container { + %newobject __iter__(PyObject **PYTHON_SELF); swig::SwigPyIterator* __iter__(PyObject **PYTHON_SELF) { return swig::make_forward_iterator_np(self->begin(), self->begin(), @@ -1087,6 +1093,7 @@ static void* ptr_for_bdddict(PyObject* obj) } %extend spot::internal::scc_edges const, spot::internal::keep_all> { + %newobject __iter__(PyObject **PYTHON_SELF); swig::SwigPyIterator* __iter__(PyObject **PYTHON_SELF) { return swig::make_forward_iterator(self->begin(), self->begin(), @@ -1095,6 +1102,7 @@ static void* ptr_for_bdddict(PyObject* obj) } %extend spot::internal::scc_edges const, spot::internal::keep_inner_scc> { + %newobject __iter__(PyObject **PYTHON_SELF); swig::SwigPyIterator* __iter__(PyObject **PYTHON_SELF) { return swig::make_forward_iterator(self->begin(), self->begin(), @@ -1123,6 +1131,7 @@ static void* ptr_for_bdddict(PyObject* obj) } %extend spot::scc_info { + %newobject __iter__(PyObject **PYTHON_SELF); swig::SwigPyIterator* __iter__(PyObject **PYTHON_SELF) { return swig::make_forward_iterator(self->begin(), self->begin(),