Make bdd_dict a shared pointer.
* src/tgba/bdddict.hh (bdd_dict_ptr): New type. (make_bdd_dict): New function. * iface/dve2/dve2.cc, iface/dve2/dve2.hh, iface/dve2/dve2check.cc, src/bin/dstar2tgba.cc, src/bin/ltlcross.cc, src/dstarparse/dstarparse.yy, src/dstarparse/public.hh, src/graphtest/tgbagraph.cc, src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh, src/kripke/kripkeprint.cc, src/kripkeparse/kripkeparse.yy, src/kripkeparse/public.hh, src/kripketest/parse_print_test.cc, src/ltlvisit/apcollect.cc, src/ltlvisit/contain.cc, src/ltlvisit/contain.hh, src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh, src/neverparse/neverclaimparse.yy, src/neverparse/public.hh, src/priv/accmap.hh, src/saba/saba.hh, src/saba/sabacomplementtgba.cc, src/saba/sabacomplementtgba.hh, src/sabatest/sabacomplementtgba.cc, src/ta/ta.hh, src/ta/taexplicit.cc, src/ta/taexplicit.hh, src/ta/taproduct.cc, src/ta/taproduct.hh, src/ta/tgtaexplicit.cc, src/ta/tgtaexplicit.hh, src/taalgos/dotty.cc, src/tgba/bddprint.cc, src/tgba/bddprint.hh, src/tgba/formula2bdd.cc, src/tgba/formula2bdd.hh, src/tgba/taatgba.cc, src/tgba/taatgba.hh, src/tgba/tgba.hh, src/tgba/tgbagraph.hh, src/tgba/tgbakvcomplement.cc, src/tgba/tgbakvcomplement.hh, src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh, src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.hh, src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh, src/tgba/tgbascc.cc, src/tgba/tgbascc.hh, src/tgba/tgbasgba.cc, src/tgba/tgbasgba.hh, src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh, src/tgba/wdbacomp.cc, src/tgbaalgos/compsusp.cc, src/tgbaalgos/compsusp.hh, src/tgbaalgos/degen.cc, src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/emptiness.cc, src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh, src/tgbaalgos/save.cc, src/tgbaalgos/translate.cc, src/tgbaalgos/translate.hh, src/tgbaalgos/word.cc, src/tgbaalgos/word.hh, src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy, src/tgbatest/complementation.cc, src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc, src/tgbatest/maskacc.cc, src/tgbatest/powerset.cc, src/tgbatest/randtgba.cc, src/tgbatest/taatgba.cc, src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc, wrap/python/ajax/spot.in, wrap/python/tests/alarm.py, wrap/python/tests/ltl2tgba.py, wrap/python/tests/parsetgba.py: Update to use bdd_dict_ptr and make_bdd_dict().
This commit is contained in:
parent
10e5c62386
commit
dc5ad78b3e
93 changed files with 199 additions and 245 deletions
|
|
@ -76,7 +76,7 @@ namespace spot
|
|||
{
|
||||
spot::ltl::atomic_prop_set aps;
|
||||
atomic_prop_collect(f, &aps);
|
||||
bdd_dict* d = a->get_dict();
|
||||
auto d = a->get_dict();
|
||||
bdd res = bddtrue;
|
||||
for (atomic_prop_set::const_iterator i = aps.begin();
|
||||
i != aps.end(); ++i)
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ namespace spot
|
|||
{
|
||||
|
||||
language_containment_checker::language_containment_checker
|
||||
(bdd_dict* dict, bool exprop, bool symb_merge,
|
||||
(bdd_dict_ptr dict, bool exprop, bool symb_merge,
|
||||
bool branching_postponement, bool fair_loop_approx)
|
||||
: dict_(dict), exprop_(exprop), symb_merge_(symb_merge),
|
||||
branching_postponement_(branching_postponement),
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ namespace spot
|
|||
public:
|
||||
/// This class uses spot::ltl_to_tgba_fm to translate LTL
|
||||
/// formulae. See that function for the meaning of these options.
|
||||
language_containment_checker(bdd_dict* dict, bool exprop,
|
||||
language_containment_checker(bdd_dict_ptr dict, bool exprop,
|
||||
bool symb_merge,
|
||||
bool branching_postponement,
|
||||
bool fair_loop_approx);
|
||||
|
|
@ -72,7 +72,7 @@ namespace spot
|
|||
record_* register_formula_(const formula* f);
|
||||
|
||||
/* Translation options */
|
||||
bdd_dict* dict_;
|
||||
bdd_dict_ptr dict_;
|
||||
bool exprop_;
|
||||
bool symb_merge_;
|
||||
bool branching_postponement_;
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ namespace spot
|
|||
typedef std::pair<const formula*, const formula*> pairf;
|
||||
typedef std::map<pairf, bool> syntimpl_cache_t;
|
||||
public:
|
||||
bdd_dict* dict;
|
||||
bdd_dict_ptr dict;
|
||||
ltl_simplifier_options options;
|
||||
language_containment_checker lcc;
|
||||
|
||||
|
|
@ -130,12 +130,12 @@ namespace spot
|
|||
dict->unregister_all_my_variables(this);
|
||||
}
|
||||
|
||||
ltl_simplifier_cache(bdd_dict* d)
|
||||
ltl_simplifier_cache(bdd_dict_ptr d)
|
||||
: dict(d), lcc(d, true, true, false, false)
|
||||
{
|
||||
}
|
||||
|
||||
ltl_simplifier_cache(bdd_dict* d, const ltl_simplifier_options& opt)
|
||||
ltl_simplifier_cache(bdd_dict_ptr d, const ltl_simplifier_options& opt)
|
||||
: dict(d), options(opt), lcc(d, true, true, false, false)
|
||||
{
|
||||
options.containment_checks |= options.containment_checks_stronger;
|
||||
|
|
@ -4694,43 +4694,20 @@ namespace spot
|
|||
/////////////////////////////////////////////////////////////////////
|
||||
// ltl_simplifier
|
||||
|
||||
ltl_simplifier::ltl_simplifier(bdd_dict* d)
|
||||
ltl_simplifier::ltl_simplifier(bdd_dict_ptr d)
|
||||
{
|
||||
if (!d)
|
||||
{
|
||||
d = new bdd_dict;
|
||||
owndict = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
owndict = false;
|
||||
}
|
||||
cache_ = new ltl_simplifier_cache(d);
|
||||
}
|
||||
|
||||
ltl_simplifier::ltl_simplifier(const ltl_simplifier_options& opt,
|
||||
bdd_dict* d)
|
||||
bdd_dict_ptr d)
|
||||
{
|
||||
if (!d)
|
||||
{
|
||||
d = new bdd_dict;
|
||||
owndict = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
owndict = false;
|
||||
}
|
||||
cache_ = new ltl_simplifier_cache(d, opt);
|
||||
}
|
||||
|
||||
ltl_simplifier::~ltl_simplifier()
|
||||
{
|
||||
bdd_dict* todelete = 0;
|
||||
if (owndict)
|
||||
todelete = cache_->dict;
|
||||
delete cache_;
|
||||
// It has to be deleted after the cache.
|
||||
delete todelete;
|
||||
}
|
||||
|
||||
const formula*
|
||||
|
|
@ -4794,7 +4771,7 @@ namespace spot
|
|||
return cache_->boolean_to_isop(f);
|
||||
}
|
||||
|
||||
bdd_dict*
|
||||
bdd_dict_ptr
|
||||
ltl_simplifier::get_dict() const
|
||||
{
|
||||
return cache_->dict;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
// Copyright (C) 2011, 2012, 2013 Laboratoire de Recherche et
|
||||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2011, 2012, 2013, 2014 Laboratoire de Recherche et
|
||||
// Developpement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -78,8 +79,9 @@ namespace spot
|
|||
class SPOT_API ltl_simplifier
|
||||
{
|
||||
public:
|
||||
ltl_simplifier(bdd_dict* dict = 0);
|
||||
ltl_simplifier(const ltl_simplifier_options& opt, bdd_dict* dict = 0);
|
||||
ltl_simplifier(bdd_dict_ptr dict = make_bdd_dict());
|
||||
ltl_simplifier(const ltl_simplifier_options& opt,
|
||||
bdd_dict_ptr dict = make_bdd_dict());
|
||||
~ltl_simplifier();
|
||||
|
||||
/// Simplify the formula \a f (using options supplied to the
|
||||
|
|
@ -157,7 +159,7 @@ namespace spot
|
|||
void clear_as_bdd_cache();
|
||||
|
||||
/// Return the bdd_dict used.
|
||||
bdd_dict* get_dict() const;
|
||||
bdd_dict_ptr get_dict() const;
|
||||
|
||||
/// Cached version of spot::ltl::star_normal_form().
|
||||
const formula* star_normal_form(const formula* f);
|
||||
|
|
@ -177,8 +179,6 @@ namespace spot
|
|||
// Copy disallowed.
|
||||
ltl_simplifier(const ltl_simplifier&) SPOT_DELETED;
|
||||
void operator=(const ltl_simplifier&) SPOT_DELETED;
|
||||
|
||||
bool owndict;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue