projects
/
satcheck.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e3e2836
)
fix broken use of iterator
author
bdemsky
<bdemsky@uci.edu>
Wed, 23 Nov 2016 03:21:16 +0000
(19:21 -0800)
committer
bdemsky
<bdemsky@uci.edu>
Wed, 23 Nov 2016 03:21:16 +0000
(19:21 -0800)
hashset.h
patch
|
blob
|
history
planner.cc
patch
|
blob
|
history
diff --git
a/hashset.h
b/hashset.h
index c4274e2d0244df57e3107591147f0e085a9a9585..ecda268fd21fe1eb6d57989c60541e03d2075360 100644
(file)
--- a/
hashset.h
+++ b/
hashset.h
@@
-151,6
+151,10
@@
class HashSet {
return NULL;
}
return NULL;
}
+ _Key getFirstKey() {
+ return list->key;
+ }
+
bool contains(_Key key) {
return table->get(key)!=NULL;
}
bool contains(_Key key) {
return table->get(key)!=NULL;
}
@@
-209,7
+213,6
@@
class HashSet {
void operator delete[](void *p, size_t size) {
_free(p);
}
void operator delete[](void *p, size_t size) {
_free(p);
}
-
private:
HashTable<_Key, LinkNode<_Key>*, _KeyInt, _Shift, _malloc, _calloc, _free, hash_function, equals> * table;
LinkNode<_Key> *list;
private:
HashTable<_Key, LinkNode<_Key>*, _KeyInt, _Shift, _malloc, _calloc, _free, hash_function, equals> * table;
LinkNode<_Key> *list;
diff --git
a/planner.cc
b/planner.cc
index 5ca24af5a1f2c673cfd616bbca067926737fccba..f832fb914c4ed57905ba010c2c79005196af24b8 100644
(file)
--- a/
planner.cc
+++ b/
planner.cc
@@
-52,10
+52,11
@@
void Planner::addChange(MCChange *change) {
}
void Planner::processChanges() {
}
void Planner::processChanges() {
- ChangeIterator *cit=changeset->iterator();
- for(;cit->hasNext();) {
- MCChange *change=cit->next();
- cit->remove();
+ while(!changeset->isEmpty()) {
+ MCChange *change=changeset->getFirstKey();
+ if (change==NULL)
+ break;
+ changeset->remove(change);
if (completedset->contains(change)) {
delete change;
continue;
if (completedset->contains(change)) {
delete change;
continue;
@@
-73,9
+74,10
@@
void Planner::processChanges() {
} else ASSERT(false);
completedset->add(change);
}
} else ASSERT(false);
completedset->add(change);
}
- delete cit;
- for(cit=completedset->iterator();cit->hasNext();) {
+ ChangeIterator *cit=completedset->iterator();
+
+ for(;cit->hasNext();) {
MCChange *change=cit->next();
cit->remove();
delete change;
MCChange *change=cit->next();
cit->remove();
delete change;