From: Hamed Gorjiara Date: Wed, 25 Apr 2018 04:54:39 +0000 (-0700) Subject: Fixing memory buggit status X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=commitdiff_plain;h=8be75c0cf932afdf2a48422b6a3c53c3d9733557 Fixing memory buggit status --- diff --git a/src/ASTAnalyses/Encoding/encodinggraph.cc b/src/ASTAnalyses/Encoding/encodinggraph.cc index 5c758c3..ce695e2 100644 --- a/src/ASTAnalyses/Encoding/encodinggraph.cc +++ b/src/ASTAnalyses/Encoding/encodinggraph.cc @@ -77,6 +77,7 @@ void EncodingGraph::encode() { encoding->encodingArrayInitialization(); } else if (encodetype == BINARYINDEX) { EncodingSubGraph *subgraph = graphMap.get(n); + DEBUG("graphMap.get(subgraph=%p, n=%p)\n", subgraph, n); if (subgraph == NULL) continue; uint encodingSize = subgraph->getEncodingMaxVal(n) + 1; @@ -129,7 +130,9 @@ void EncodingGraph::encodeParent(Element *e) { void EncodingGraph::mergeNodes(EncodingNode *first, EncodingNode *second) { EncodingSubGraph *graph1 = graphMap.get(first); + DEBUG("graphMap.get(first=%p, graph1=%p)\n", first, graph1); EncodingSubGraph *graph2 = graphMap.get(second); + DEBUG("graphMap.get(second=%p, graph2=%p)\n", second, graph2); if (graph1 == NULL) first->setEncoding(BINARYINDEX); if (graph2 == NULL) @@ -138,6 +141,7 @@ void EncodingGraph::mergeNodes(EncodingNode *first, EncodingNode *second) { if (graph1 == NULL && graph2 == NULL) { graph1 = new EncodingSubGraph(); subgraphs.add(graph1); + DEBUG("graphMap.put(first=%p, graph1=%p)\n", first, graph1); graphMap.put(first, graph1); graph1->addNode(first); } @@ -153,15 +157,18 @@ void EncodingGraph::mergeNodes(EncodingNode *first, EncodingNode *second) { while (nodeit->hasNext()) { EncodingNode *node = nodeit->next(); graph1->addNode(node); + DEBUG("graphMap.put(node=%p, graph1=%p)\n", node, graph1); graphMap.put(node, graph1); } subgraphs.remove(graph2); delete nodeit; + DEBUG("Deleting graph2 =%p \n", graph2); delete graph2; } else { ASSERT(graph1 != NULL && graph2 == NULL); - graph1->addNode(second); - graphMap.put(second, graph1); + graph1->addNode(first); + DEBUG("graphMap.put(first=%p, graph1=%p)\n", first, graph1); + graphMap.put(first, graph1); } } @@ -246,7 +253,9 @@ void EncodingGraph::decideEdges() { return; EncodingSubGraph *leftGraph = graphMap.get(left); + DEBUG("graphMap.get(left=%p, leftgraph=%p)\n", left, leftGraph); EncodingSubGraph *rightGraph = graphMap.get(right); + DEBUG("graphMap.get(right=%p, rightgraph=%p)\n", right, rightGraph); if (leftGraph == NULL && rightGraph != NULL) { EncodingNode *tmp = left; left = right; right = tmp; EncodingSubGraph *tmpsg = leftGraph; leftGraph = rightGraph; rightGraph = tmpsg; @@ -281,7 +290,7 @@ void EncodingGraph::decideEdges() { (newSize - rightSize) * rightGraph->numElements; } double conversionfactor = 0.5; - if ((totalCost * conversionfactor) < eeValue) { + if (leftGraph != rightGraph && (totalCost * conversionfactor) < eeValue) { //add the edge mergeNodes(left, right); } diff --git a/src/Benchmarks/sudoku-csolver b/src/Benchmarks/sudoku-csolver index 4a22c3f..58323cd 160000 --- a/src/Benchmarks/sudoku-csolver +++ b/src/Benchmarks/sudoku-csolver @@ -1 +1 @@ -Subproject commit 4a22c3f08f52ac957792d389d0518455aab3e9a1 +Subproject commit 58323cd211ec80655e816fee228b1c9d975880cd