From 0ec7cabe8ddd7d52239917aea3528c351287d14d Mon Sep 17 00:00:00 2001
From: Pariksheet Pinjari <pariksheet.pinjari@huawei.com>
Date: Tue, 20 Mar 2018 01:03:00 +0530
Subject: [PATCH] JVM NDArray fatal exception fix (#1022)

---
 jvm/core/src/main/java/ml/dmlc/tvm/NDArray.java | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/jvm/core/src/main/java/ml/dmlc/tvm/NDArray.java b/jvm/core/src/main/java/ml/dmlc/tvm/NDArray.java
index 3b9a4bb12..1aea1a35c 100644
--- a/jvm/core/src/main/java/ml/dmlc/tvm/NDArray.java
+++ b/jvm/core/src/main/java/ml/dmlc/tvm/NDArray.java
@@ -53,7 +53,7 @@ public class NDArray extends NDArrayBase {
     }
     NDArray tmpArr = empty(shape(), this.dtype);
     Base.checkCall(Base._LIB.tvmArrayCopyFromJArray(nativeArr, tmpArr.handle, handle));
-    Base.checkCall(Base._LIB.tvmArrayFree(tmpArr.handle));
+    tmpArr.release();
   }
 
   /**
@@ -72,7 +72,7 @@ public class NDArray extends NDArrayBase {
     }
     NDArray tmpArr = empty(shape(), this.dtype);
     Base.checkCall(Base._LIB.tvmArrayCopyFromJArray(nativeArr, tmpArr.handle, handle));
-    Base.checkCall(Base._LIB.tvmArrayFree(tmpArr.handle));
+    tmpArr.release();
   }
 
   /**
@@ -91,7 +91,7 @@ public class NDArray extends NDArrayBase {
     }
     NDArray tmpArr = empty(shape(), this.dtype);
     Base.checkCall(Base._LIB.tvmArrayCopyFromJArray(nativeArr, tmpArr.handle, handle));
-    Base.checkCall(Base._LIB.tvmArrayFree(tmpArr.handle));
+    tmpArr.release();
   }
 
   /**
@@ -110,7 +110,7 @@ public class NDArray extends NDArrayBase {
     }
     NDArray tmpArr = empty(shape(), this.dtype);
     Base.checkCall(Base._LIB.tvmArrayCopyFromJArray(nativeArr, tmpArr.handle, handle));
-    Base.checkCall(Base._LIB.tvmArrayFree(tmpArr.handle));
+    tmpArr.release();
   }
 
   /**
@@ -129,7 +129,7 @@ public class NDArray extends NDArrayBase {
     }
     NDArray tmpArr = empty(shape(), this.dtype);
     Base.checkCall(Base._LIB.tvmArrayCopyFromJArray(nativeArr, tmpArr.handle, handle));
-    Base.checkCall(Base._LIB.tvmArrayFree(tmpArr.handle));
+    tmpArr.release();
   }
 
   /**
@@ -161,7 +161,7 @@ public class NDArray extends NDArrayBase {
     }
     NDArray tmpArr = empty(shape(), this.dtype);
     Base.checkCall(Base._LIB.tvmArrayCopyFromJArray(nativeArr, tmpArr.handle, handle));
-    Base.checkCall(Base._LIB.tvmArrayFree(tmpArr.handle));
+    tmpArr.release();
   }
 
   private void checkCopySize(int sourceLength) {
@@ -179,7 +179,7 @@ public class NDArray extends NDArrayBase {
   public void copyFromRaw(byte[] sourceArray) {
     NDArray tmpArr = empty(shape(), this.dtype);
     Base.checkCall(Base._LIB.tvmArrayCopyFromJArray(sourceArray, tmpArr.handle, handle));
-    Base.checkCall(Base._LIB.tvmArrayFree(tmpArr.handle));
+    tmpArr.release();
   }
 
   /**
-- 
GitLab