memory bug fix
authorHamed Gorjiara <hgorjiar@uci.edu>
Wed, 31 Oct 2018 18:58:32 +0000 (11:58 -0700)
committerHamed Gorjiara <hgorjiar@uci.edu>
Wed, 31 Oct 2018 18:58:32 +0000 (11:58 -0700)
src/Tuner/staticautotuner.cc

index 6fa385bf720fcde631633a1ebb19694e139d9b61..1d42932631779fdabdda705254ebb4d7dbc8b189 100644 (file)
@@ -13,26 +13,27 @@ StaticAutoTuner::StaticAutoTuner(uint _budget) : AutoTuner(_budget) {
 StaticSearchTuner *StaticAutoTuner::mutateTuner(StaticSearchTuner *oldTuner) {
        StaticSearchTuner *newTuner = oldTuner->copyUsed();
        result = newTuner->nextStaticTuner();
-       return result == EXIT_FAILURE ? newTuner : NULL;
+       if( result == EXIT_FAILURE) {
+               return newTuner;
+       }else {
+               delete newTuner;
+               return NULL;
+       }
 }
 
 void StaticAutoTuner::tune() {
-       StaticSearchTuner *bestTuner = NULL;
-       double bestScore = DBL_MAX;
-
        StaticSearchTuner *oldTuner = new StaticSearchTuner();
-       double base_temperature = evaluateAll(oldTuner);
-       double oldScore = base_temperature;
-
+       evaluateAll(oldTuner);
        while (true) {
                StaticSearchTuner *newTuner = mutateTuner(oldTuner);
-               if (newTuner == NULL)
-                       return;
+               if (newTuner == NULL){
+                       break;
+               }
                double newScore = evaluateAll(newTuner);
                newTuner->printUsed();
                model_print("Received score %f\n", newScore);
                delete oldTuner;
-               oldScore = newScore;
                oldTuner = newTuner;
        }
+       delete oldTuner;
 }