]> git.donarmstrong.com Git - mothur.git/blobdiff - collectsharedcommand.cpp
adding mothurout.h and .cpp to repo
[mothur.git] / collectsharedcommand.cpp
index 0c937f62c83a5a1b1cac914c1a2e01b356dddc03..201709ea83ff099f9afe97b2e3af69bdb4fbe1ce 100644 (file)
@@ -266,8 +266,19 @@ int CollectSharedCommand::execute(){
                                
                                //create collectors curve
                                cCurve = new Collect(order, cDisplays);
-                               cCurve->getSharedCurve(freq);
+                               int error = cCurve->getSharedCurve(freq);
                                delete cCurve;
+                               
+                               if (error == 1) {
+                                       for (int i = 0; i < outputNames.size(); i++) {  remove(outputNames[i].c_str());         }  
+                                       for(int i=0;i<cDisplays.size();i++){    delete cDisplays[i];    }
+                                       delete input;  globaldata->ginput = NULL;
+                                       delete read;
+                                       delete order; globaldata->gorder = NULL;
+                                       delete validCalculator;
+                                       globaldata->Groups.clear();
+                                       return 0;
+                               }
                        
                                m->mothurOut(order->getLabel()); m->mothurOutEndLine();
                                processedLabels.insert(order->getLabel());
@@ -283,8 +294,20 @@ int CollectSharedCommand::execute(){
                                
                                //create collectors curve
                                cCurve = new Collect(order, cDisplays);
-                               cCurve->getSharedCurve(freq);
+                               int error = cCurve->getSharedCurve(freq);
                                delete cCurve;
+                               
+                               if (error == 1) {
+                                       for (int i = 0; i < outputNames.size(); i++) {  remove(outputNames[i].c_str());         }  
+                                       for(int i=0;i<cDisplays.size();i++){    delete cDisplays[i];    }
+                                       delete input;  globaldata->ginput = NULL;
+                                       delete read;
+                                       delete order; globaldata->gorder = NULL;
+                                       delete validCalculator;
+                                       globaldata->Groups.clear();
+                                       return 0;
+                               }
+
                        
                                m->mothurOut(order->getLabel()); m->mothurOutEndLine();
                                processedLabels.insert(order->getLabel());
@@ -321,9 +344,21 @@ int CollectSharedCommand::execute(){
                        order = input->getSharedOrderVector(lastLabel);
 
                        cCurve = new Collect(order, cDisplays);
-                       cCurve->getSharedCurve(freq);
+                       int error = cCurve->getSharedCurve(freq);
                        delete cCurve;
                        
+                       if (error == 1) {
+                               for (int i = 0; i < outputNames.size(); i++) {  remove(outputNames[i].c_str());         }  
+                               for(int i=0;i<cDisplays.size();i++){    delete cDisplays[i];    }
+                               delete input;  globaldata->ginput = NULL;
+                               delete read;
+                               delete order; globaldata->gorder = NULL;
+                               delete validCalculator;
+                               globaldata->Groups.clear();
+                               return 0;
+                       }
+
+                       
                        m->mothurOut(order->getLabel()); m->mothurOutEndLine();
                        delete order;
                }