diff options
author | Tim King <taking@cs.nyu.edu> | 2010-05-19 21:20:54 +0000 |
---|---|---|
committer | Tim King <taking@cs.nyu.edu> | 2010-05-19 21:20:54 +0000 |
commit | ff70395fd3dcde9f68eda1c6a8bd70e6491f7458 (patch) | |
tree | d0cf52a5e6cb98a0aa6c15ca4c4fe4d258cb626f /src/expr/attribute.h | |
parent | 07e1a1668a27e90563f23bcf5abb5cb7fe30da86 (diff) |
Significant revision to theory/arith. The new draft has a lot of small bug fixes and organizational changes. The theory is now enabled to perform checking in the TheoryEngine. This draft can now solve 2 new regression tests test/regress/regress0/ineq_slack.smt and test/regress/regress0/ineq_basic.smt. There is also a small bug fix inside src/expr/attribute.h.
Diffstat (limited to 'src/expr/attribute.h')
-rw-r--r-- | src/expr/attribute.h | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/expr/attribute.h b/src/expr/attribute.h index f231b701c..619f60a6c 100644 --- a/src/expr/attribute.h +++ b/src/expr/attribute.h @@ -555,19 +555,31 @@ inline void AttributeManager::deleteFromTable(AttrHash<T>& table, */ template <class T> inline void AttributeManager::deleteAllFromTable(AttrHash<T>& table) { + bool anyRequireClearing = false; + typedef AttributeTraits<T, false> traits_t; + typedef AttrHash<T> hash_t; for(uint64_t id = 0; id < attr::LastAttributeId<T, false>::s_id; ++id) { - typedef AttributeTraits<T, false> traits_t; - typedef AttrHash<T> hash_t; if(traits_t::cleanup[id] != NULL) { - typename hash_t::iterator it = table.begin(); - typename hash_t::iterator it_end = table.end(); - while (it != it_end) { + anyRequireClearing = true; + } + } + + if(anyRequireClearing){ + typename hash_t::iterator it = table.begin(); + typename hash_t::iterator it_end = table.end(); + + while (it != it_end){ + uint64_t id = (*it).first.first; + Debug("attrgc") << "id " << id + << " node_value: " << ((*it).first.second) + << std::endl; + if(traits_t::cleanup[id] != NULL) { traits_t::cleanup[id]((*it).second); - ++ it; } + ++it; } - table.clear(); } + table.clear(); } |