twa: call unregister_all_my_variables()

Fixes #129.

* spot/twa/twa.cc (~twa): call unregister_all_my_variables()
* spot/twa/twagraph.hh, spot/twa/twaproduct.cc,
spot/twaalgos/stutter.cc: Simplify.
* NEWS: Mention the change.
This commit is contained in:
Alexandre Duret-Lutz 2016-01-10 21:02:31 +01:00
parent d0b38156f3
commit d22ecba9b6
5 changed files with 6 additions and 8 deletions

6
NEWS
View file

@ -2,7 +2,7 @@ New in spot 1.99.6a (not yet released)
Command-line tools: Command-line tools:
* BACKWARD INCOMPATIBILE CHANGE: All tools that output automata now * BACKWARD INCOMPATIBLE CHANGE: All tools that output automata now
use the HOA format by default instead of the GraphViz output. use the HOA format by default instead of the GraphViz output.
This makes it easier to pipe several commands. This makes it easier to pipe several commands.
@ -41,6 +41,10 @@ New in spot 1.99.6a (not yet released)
renamed to spot/ltsmin/, so that installed and non-installed renamed to spot/ltsmin/, so that installed and non-installed
directories can be used similarly. directories can be used similarly.
* twa::~twa() is now calling
get_dict()->unregister_all_my_variable(this);
so this does not need to be done in any subclass.
* is_inherently_weak_automaton() is a new function, and * is_inherently_weak_automaton() is a new function, and
check_strength() has been modified to also check inherently weak check_strength() has been modified to also check inherently weak
automata. automata.

View file

@ -43,6 +43,7 @@ namespace spot
last_support_conditions_input_->destroy(); last_support_conditions_input_->destroy();
delete iter_cache_; delete iter_cache_;
release_named_properties(); release_named_properties();
get_dict()->unregister_all_my_variables(this);
} }
bdd bdd

View file

@ -202,7 +202,6 @@ namespace spot
virtual ~twa_graph() virtual ~twa_graph()
{ {
get_dict()->unregister_all_my_variables(this);
// Prevent this state from being destroyed by ~twa(), // Prevent this state from being destroyed by ~twa(),
// as the state will be destroyed when g_ is destroyed. // as the state will be destroyed when g_ is destroyed.
last_support_conditions_input_ = nullptr; last_support_conditions_input_ = nullptr;

View file

@ -315,7 +315,6 @@ namespace spot
twa_product::~twa_product() twa_product::~twa_product()
{ {
get_dict()->unregister_all_my_variables(this);
// Prevent these states from being destroyed by ~tgba(): they // Prevent these states from being destroyed by ~tgba(): they
// will be destroyed before when the pool is destructed. // will be destroyed before when the pool is destructed.
if (last_support_conditions_input_) if (last_support_conditions_input_)

View file

@ -215,11 +215,6 @@ namespace spot
acc_.set_generalized_buchi(); acc_.set_generalized_buchi();
} }
virtual ~tgbasl()
{
get_dict()->unregister_all_my_variables(this);
}
virtual const state* get_init_state() const override virtual const state* get_init_state() const override
{ {
return new state_tgbasl(a_->get_init_state(), bddfalse); return new state_tgbasl(a_->get_init_state(), bddfalse);