Introduct a down_cast macro.

* src/misc/casts.hh: New file.
* src/misc/Makefile.am: Add it.
* iface/dve2/dve2.cc, iface/gspn/gspn.cc, iface/gspn/ssp.cc,
src/evtgba/explicit.cc, src/evtgba/product.cc, src/misc/casts.hh,
src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/taatgba.cc,
src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.cc,
src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
src/tgba/tgbakvcomplement.cc, src/tgba/tgbaproduct.cc,
src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/wdbacomp.cc,
src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/reductgba_sim.cc,
src/tgbaalgos/reductgba_sim_del.cc: Use down_cast when
appropriate.
This commit is contained in:
Alexandre Duret-Lutz 2011-03-31 19:39:44 +02:00
parent 12783ff784
commit 9f63bb6637
25 changed files with 193 additions and 124 deletions

View file

@ -82,7 +82,7 @@ namespace spot
acss_states() const
{
// all visited states are in the state space search
return dynamic_cast<const T*>(this)->h_.size();
return static_cast<const T*>(this)->h_.size();
}
};

View file

@ -234,8 +234,8 @@ namespace spot
duplicator_node::compare(spoiler_node* n)
{
return (this->spoiler_node::compare(n) &&
(label_ == dynamic_cast<duplicator_node*>(n)->get_label()) &&
(acc_ == dynamic_cast<duplicator_node*>(n)->get_acc()));
(label_ == static_cast<duplicator_node*>(n)->get_label()) &&
(acc_ == static_cast<duplicator_node*>(n)->get_acc()));
}
bdd

View file

@ -89,18 +89,18 @@ namespace spot
if (i != lnode_succ->end())
{
tmpmax =
dynamic_cast<duplicator_node_delayed*>(*i)->get_progress_measure();
if (dynamic_cast<duplicator_node_delayed*>(*i)->get_lead_2_acc_all())
static_cast<duplicator_node_delayed*>(*i)->get_progress_measure();
if (static_cast<duplicator_node_delayed*>(*i)->get_lead_2_acc_all())
tmpmaxwin = tmpmax;
++i;
}
for (; i != lnode_succ->end(); ++i)
{
tmp =
dynamic_cast<duplicator_node_delayed*>(*i)->get_progress_measure();
static_cast<duplicator_node_delayed*>(*i)->get_progress_measure();
if (tmp > tmpmax)
tmpmax = tmp;
if (dynamic_cast<duplicator_node_delayed*>(*i)->get_lead_2_acc_all() &&
if (static_cast<duplicator_node_delayed*>(*i)->get_lead_2_acc_all() &&
(tmp > tmpmaxwin))
tmpmaxwin = tmp;
}
@ -126,7 +126,7 @@ namespace spot
{
return (this->spoiler_node::compare(n) &&
(acceptance_condition_visited_ ==
dynamic_cast<spoiler_node_delayed*>(n)->
static_cast<spoiler_node_delayed*>(n)->
get_acceptance_condition_visited()));
}
@ -193,7 +193,7 @@ namespace spot
seen_ = true;
for (sn_v::iterator i = lnode_succ->begin();
i != lnode_succ->end(); ++i)
dynamic_cast<duplicator_node_delayed*>(*i)->set_lead_2_acc_all(acc);
static_cast<duplicator_node_delayed*>(*i)->set_lead_2_acc_all(acc);
}
else
{
@ -246,17 +246,17 @@ namespace spot
if (i != lnode_succ->end())
{
tmpmin =
dynamic_cast<spoiler_node_delayed*>(*i)->get_progress_measure();
if (dynamic_cast<spoiler_node_delayed*>(*i)->get_lead_2_acc_all())
static_cast<spoiler_node_delayed*>(*i)->get_progress_measure();
if (static_cast<spoiler_node_delayed*>(*i)->get_lead_2_acc_all())
tmpminwin = tmpmin;
++i;
}
for (; i != lnode_succ->end(); ++i)
{
tmp = dynamic_cast<spoiler_node_delayed*>(*i)->get_progress_measure();
tmp = static_cast<spoiler_node_delayed*>(*i)->get_progress_measure();
if (tmp < tmpmin)
tmpmin = tmp;
if (dynamic_cast<spoiler_node_delayed*>(*i)->get_lead_2_acc_all() &&
if (static_cast<spoiler_node_delayed*>(*i)->get_lead_2_acc_all() &&
(tmp > tmpminwin))
tmpminwin = tmp;
}
@ -333,7 +333,7 @@ namespace spot
for (sn_v::iterator i = lnode_succ->begin();
i != lnode_succ->end(); ++i)
lead_2_acc_all_
|= dynamic_cast<spoiler_node_delayed*>(*i)->set_lead_2_acc_all(acc);
|= static_cast<spoiler_node_delayed*>(*i)->set_lead_2_acc_all(acc);
}
return lead_2_acc_all_;
}
@ -398,7 +398,7 @@ namespace spot
for (si->first(); !si->done(); si->next())
{
bdd btmp = si->current_acceptance_conditions() |
dynamic_cast<spoiler_node_delayed*>(sn)->
static_cast<spoiler_node_delayed*>(sn)->
get_acceptance_condition_visited();
s_v::iterator i1;
@ -505,7 +505,7 @@ namespace spot
{
exist = true;
delete dn_n;
dn_n = dynamic_cast<duplicator_node_delayed*>(*i);
dn_n = static_cast<duplicator_node_delayed*>(*i);
break;
}
}
@ -536,7 +536,7 @@ namespace spot
{
exist = true;
delete sn_n;
sn_n = dynamic_cast<spoiler_node_delayed*>(*i);
sn_n = static_cast<spoiler_node_delayed*>(*i);
break;
}
}
@ -590,9 +590,9 @@ namespace spot
= spoiler_vertice_.begin();
i != spoiler_vertice_.end(); ++i)
{
if ((dynamic_cast<spoiler_node_delayed*>(*i)->get_progress_measure()
if ((static_cast<spoiler_node_delayed*>(*i)->get_progress_measure()
< nb_spoiler_loose_ + 1) &&
(dynamic_cast<spoiler_node_delayed*>(*i)
(static_cast<spoiler_node_delayed*>(*i)
->get_acceptance_condition_visited() == bddfalse))
{
p = new state_couple((*i)->get_spoiler_node(),