From 8f72487e0c75fad863349604d5008b51b7e5e152 Mon Sep 17 00:00:00 2001
From: Karl Lessard <karl@kubx.ca>
Date: Wed, 1 May 2019 09:13:19 -0400
Subject: [PATCH] Replace dynamic array alloc with unq pointer

---
 .../src/main/native/eager_operation_builder_jni.cc     | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/tensorflow/java/src/main/native/eager_operation_builder_jni.cc b/tensorflow/java/src/main/native/eager_operation_builder_jni.cc
index f9686ba6d3d..ae3193aa290 100644
--- a/tensorflow/java/src/main/native/eager_operation_builder_jni.cc
+++ b/tensorflow/java/src/main/native/eager_operation_builder_jni.cc
@@ -90,9 +90,10 @@ JNIEXPORT jlongArray JNICALL Java_org_tensorflow_EagerOperationBuilder_execute(
   TFE_Op* op = requireOp(env, op_handle);
   if (op == nullptr) return 0;
   int num_retvals = 8;  // should be >= than max number of outputs in any op
-  TFE_TensorHandle* retvals[num_retvals];
+  std::unique_ptr<TFE_TensorHandle* []> retvals(
+      new TFE_TensorHandle* [num_retvals]);
   TF_Status* status = TF_NewStatus();
-  TFE_Execute(op, retvals, &num_retvals, status);
+  TFE_Execute(op, retvals.get(), &num_retvals, status);
   if (!throwExceptionIfNotOK(env, status)) {
     TF_DeleteStatus(status);
     return nullptr;
@@ -139,7 +140,8 @@ JNIEXPORT void JNICALL Java_org_tensorflow_EagerOperationBuilder_addInputList(
   if (op == nullptr) return;
   jlong* cinput_handles = env->GetLongArrayElements(input_handles, nullptr);
   size_t num_inputs = static_cast<size_t>(env->GetArrayLength(input_handles));
-  TFE_TensorHandle* tensor_handles[num_inputs];
+  std::unique_ptr<TFE_TensorHandle* []> tensor_handles(
+      new TFE_TensorHandle* [num_inputs]);
   for (int i = 0; i < num_inputs; ++i) {
     tensor_handles[i] = requireTensorHandle(env, cinput_handles[i]);
     if (tensor_handles[i] == nullptr) {
@@ -149,7 +151,7 @@ JNIEXPORT void JNICALL Java_org_tensorflow_EagerOperationBuilder_addInputList(
   }
   env->ReleaseLongArrayElements(input_handles, cinput_handles, JNI_ABORT);
   TF_Status* status = TF_NewStatus();
-  TFE_OpAddInputList(op, tensor_handles, num_inputs, status);
+  TFE_OpAddInputList(op, tensor_handles.get(), num_inputs, status);
   throwExceptionIfNotOK(env, status);
   TF_DeleteStatus(status);
 }