summaryrefslogtreecommitdiff
path: root/src/expr/attribute.h
diff options
context:
space:
mode:
authorTim King <taking@cs.nyu.edu>2010-05-19 21:20:54 +0000
committerTim King <taking@cs.nyu.edu>2010-05-19 21:20:54 +0000
commitff70395fd3dcde9f68eda1c6a8bd70e6491f7458 (patch)
treed0cf52a5e6cb98a0aa6c15ca4c4fe4d258cb626f /src/expr/attribute.h
parent07e1a1668a27e90563f23bcf5abb5cb7fe30da86 (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.h26
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();
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback