Fix memory leak am: 32f40e1a30 am: 0c6671f06e am: afc2064324

Original change: https://googleplex-android-review.googlesource.com/c/platform/test/mlts/benchmark/+/12468788

Change-Id: I7a85749b29f8a3c3bc1f689ecede353e3abe02f1
diff --git a/src/com/android/nn/benchmark/core/NNTestBase.java b/src/com/android/nn/benchmark/core/NNTestBase.java
index 21f8711..48a934f 100644
--- a/src/com/android/nn/benchmark/core/NNTestBase.java
+++ b/src/com/android/nn/benchmark/core/NNTestBase.java
@@ -32,7 +32,7 @@
 import java.util.List;
 import java.util.Optional;
 
-public class NNTestBase {
+public class NNTestBase implements AutoCloseable {
     protected static final String TAG = "NN_TESTBASE";
 
     // Used to load the 'native-lib' library on application startup.
@@ -322,4 +322,9 @@
         }
         return outFileName;
     }
+
+    @Override
+    public void close()  {
+        destroy();
+    }
 }
diff --git a/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java b/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java
index e79a8b3..b939b54 100644
--- a/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java
+++ b/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java
@@ -91,13 +91,14 @@
                     String useNNAPIDir = useNNAPI? NNAPI_DIR: CPU_DIR;
                     Log.i(TAG, "Running " + modelName + " in " + useNNAPIDir);
                     TestModelEntry modelEntry = TestModels.getModelByName(modelName);
-                    NNTestBase testBase = modelEntry.createNNTestBase(
-                        useNNAPI, true/*enableIntermediateTensorsDump*/);
-                    testBase.setupModel(this);
-                    File outputDir = new File(getFilesDir() + "/" + DUMP_DIR +
-                        "/" + modelName, useNNAPIDir);
-                    safeMkdir(outputDir);
-                    testBase.dumpAllLayers(outputDir, inputAssetIndex, inputAssetSize);
+                    try (NNTestBase testBase = modelEntry.createNNTestBase(
+                            useNNAPI, true/*enableIntermediateTensorsDump*/)) {
+                        testBase.setupModel(this);
+                        File outputDir = new File(getFilesDir() + "/" + DUMP_DIR +
+                            "/" + modelName, useNNAPIDir);
+                        safeMkdir(outputDir);
+                        testBase.dumpAllLayers(outputDir, inputAssetIndex, inputAssetSize);
+                    }
                 }
             }