Fix memory leak in getInstrumentationResult am: c8f00b5c96
am: 81e795ebb3

Change-Id: I77dfdd6e653018ba64a70f70aded8dca03dc9bbd
diff --git a/src/com/android/nn/benchmark/app/NNBenchmark.java b/src/com/android/nn/benchmark/app/NNBenchmark.java
index 273b4be..c29fef8 100644
--- a/src/com/android/nn/benchmark/app/NNBenchmark.java
+++ b/src/com/android/nn/benchmark/app/NNBenchmark.java
@@ -86,7 +86,7 @@
         BenchmarkResult getInstrumentationResult(
                 TestModels.TestModelEntry t, float warmupTimeSeconds, float runTimeSeconds)
                 throws IOException {
-            mTest = changeTest(t);
+            mTest = changeTest(mTest, t);
             return getBenchmark(warmupTimeSeconds, runTimeSeconds);
         }
 
@@ -181,13 +181,6 @@
                         } catch (InterruptedException e) {
                         }
 
-                        // If we just ran a test, we destroy it here to relieve some memory
-                        // pressure
-
-                        if (mTest != null) {
-                            mTest.destroy();
-                        }
-
                         TestModels.TestModelEntry testModel =
                             TestModels.modelsList().get(mTestList[ct]);
                         int testNumber = ct + 1;
@@ -201,7 +194,7 @@
                         });
 
                         // Select the next test
-                        mTest = changeTest(testModel);
+                        mTest = changeTest(mTest, testModel);
 
                         // If the user selected the "long pause" option, wait
                         if (mTogglePause) {
@@ -253,7 +246,11 @@
     private boolean mDoingBenchmark;
     public Processor mProcessor;
 
-    NNTestBase changeTest(TestModels.TestModelEntry t) {
+    NNTestBase changeTest(NNTestBase oldTestBase, TestModels.TestModelEntry t) {
+        if (oldTestBase != null) {
+            // Make sure we don't leak memory.
+            oldTestBase.destroy();
+        }
         NNTestBase tb = t.createNNTestBase(mUseNNApi,
                 false /* enableIntermediateTensorsDump */);
         tb.setupModel(this);