OrderGraph *buildOrderGraph(Order *order) {
ASSERT(order->graph == NULL);
OrderGraph *orderGraph = new OrderGraph(order);
- uint constrSize = order->constraints.getSize();
+ Vector<BooleanOrder *> *constraints = order->getConstraints();
+ uint constrSize = constraints->getSize();
for (uint j = 0; j < constrSize; j++) {
- orderGraph->addOrderConstraintToOrderGraph(order->constraints.get(j));
+ orderGraph->addOrderConstraintToOrderGraph(constraints->get(j));
}
return orderGraph;
}
OrderGraph *buildMustOrderGraph(Order *order) {
ASSERT(order->graph == NULL);
OrderGraph *orderGraph = new OrderGraph(order);
- uint constrSize = order->constraints.getSize();
+ Vector<BooleanOrder *> *constraints = order->getConstraints();
+ uint constrSize = constraints->getSize();
for (uint j = 0; j < constrSize; j++) {
- orderGraph->addMustOrderConstraintToOrderGraph(order->constraints.get(j));
+ orderGraph->addMustOrderConstraintToOrderGraph(constraints->get(j));
}
return orderGraph;
}
OrderNode *OrderGraph::getOrderNodeFromOrderGraph(uint64_t id) {
OrderNode *node = new OrderNode(id);
- OrderNode *tmp = nodes.get(node);
+ OrderNode *tmp = (OrderNode *)nodes.get(node);
if ( tmp != NULL) {
delete node;
node = tmp;
}
OrderNode *OrderGraph::lookupOrderNodeFromOrderGraph(uint64_t id) {
- OrderNode node(id);
- OrderNode *tmp = nodes.get(&node);
+ OrderNodeKey node(id);
+ OrderNode *tmp = (OrderNode *)nodes.get(&node);
return tmp;
}
void OrderGraph::DFS(Vector<OrderNode *> *finishNodes) {
SetIteratorOrderNode *iterator = getNodes();
while (iterator->hasNext()) {
- OrderNode *node = iterator->next();
+ OrderNode *node = (OrderNode *)iterator->next();
if (node->status == NOTVISITED && !node->removed) {
node->status = VISITED;
DFSNodeVisit(node, finishNodes, false, false, 0);
void OrderGraph::DFSMust(Vector<OrderNode *> *finishNodes) {
SetIteratorOrderNode *iterator = getNodes();
while (iterator->hasNext()) {
- OrderNode *node = iterator->next();
+ OrderNode *node = (OrderNode *)iterator->next();
if (node->status == NOTVISITED && !node->removed) {
node->status = VISITED;
DFSNodeVisit(node, finishNodes, false, true, 0);
void OrderGraph::resetNodeInfoStatusSCC() {
SetIteratorOrderNode *iterator = getNodes();
while (iterator->hasNext()) {
- iterator->next()->status = NOTVISITED;
+ ((OrderNode *)iterator->next())->status = NOTVISITED;
}
delete iterator;
}