X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=readtreecommand.cpp;h=8124d53415bda6035a3f6686d8ebc50a3ecb1419;hb=81ff02ef4064fe4dec986ea3110c1cb8e1285fe6;hp=63c62265455ad6b2348d5496a278245f75fe5f71;hpb=a85da7303079652b569291eacb9c2964060e072b;p=mothur.git diff --git a/readtreecommand.cpp b/readtreecommand.cpp index 63c6226..8124d53 100644 --- a/readtreecommand.cpp +++ b/readtreecommand.cpp @@ -18,6 +18,9 @@ ReadTreeCommand::ReadTreeCommand(){ //read in group map info. treeMap = new TreeMap(globaldata->getGroupFile()); treeMap->readMap(); + + //memory leak prevention + if (globaldata->gTreemap != NULL) { delete globaldata->gTreemap; } globaldata->gTreemap = treeMap; read = new ReadNewickTree(filename); @@ -43,8 +46,11 @@ ReadTreeCommand::~ReadTreeCommand(){ int ReadTreeCommand::execute(){ try { - - read->read(); + int readOk; + + readOk = read->read(); + + if (readOk != 0) { cout << "Read Terminated." << endl; globaldata->gTree.clear(); delete globaldata->gTreemap; return 0; } vector T = globaldata->gTree; @@ -52,6 +58,7 @@ int ReadTreeCommand::execute(){ for (int i = 0; i < T.size(); i++) { T[i]->assembleTree(); } + return 0; } catch(exception& e) {