From 94d4e8673e9f8e23794d8e1b9b16b97631c37a55 Mon Sep 17 00:00:00 2001
From: "Kwabena W. Agyeman" <kwagyeman@live.com>
Date: Sun, 24 Nov 2019 16:01:23 -0800
Subject: [PATCH 1/9] Update debug log to support redirection

---
 .../experimental/micro/openmvcam/debug_log.cc | 35 +++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 tensorflow/lite/experimental/micro/openmvcam/debug_log.cc

diff --git a/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc b/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
new file mode 100644
index 00000000000..d0499ab3612
--- /dev/null
+++ b/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
@@ -0,0 +1,35 @@
+/* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+==============================================================================*/
+
+#include <stdio.h>
+#include <string.h>
+#include "tensorflow/lite/experimental/micro/debug_log.h"
+
+// These are set by openmv py_tf.c code to redirect printing to an error message
+// buffer...
+
+static char *py_tf_putchar_buffer = NULL;
+static size_t py_tf_putchar_buffer_len = 0;
+
+extern "C" void DebugLog(const char* s) {
+  for (size_t i = 0, j = strlen(s); i < j; i++) {
+    if (py_tf_putchar_buffer_len) {
+      *py_tf_putchar_buffer++ = s[i];
+      py_tf_putchar_buffer_len--;
+    } else {
+      putchar(s[i]);
+    }
+  }
+}

From 2df3cce0f34e0fb5943400a2c549d64310c1a8be Mon Sep 17 00:00:00 2001
From: "Kwabena W. Agyeman" <kwagyeman@live.com>
Date: Fri, 3 May 2019 23:15:27 -0700
Subject: [PATCH 2/9] Change printf to puts

---
 tensorflow/lite/experimental/micro/openmvcam/debug_log.cc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc b/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
index d0499ab3612..c911b5c7b08 100644
--- a/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
+++ b/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
@@ -24,6 +24,7 @@ static char *py_tf_putchar_buffer = NULL;
 static size_t py_tf_putchar_buffer_len = 0;
 
 extern "C" void DebugLog(const char* s) {
+<<<<<<< HEAD
   for (size_t i = 0, j = strlen(s); i < j; i++) {
     if (py_tf_putchar_buffer_len) {
       *py_tf_putchar_buffer++ = s[i];
@@ -32,4 +33,7 @@ extern "C" void DebugLog(const char* s) {
       putchar(s[i]);
     }
   }
+=======
+  puts(s);
+>>>>>>> Change printf to puts
 }

From cadc0e18991d7e6f1fc276bfb8d39a3f587a7697 Mon Sep 17 00:00:00 2001
From: "Kwabena W. Agyeman" <kwagyeman@live.com>
Date: Mon, 14 Oct 2019 21:31:52 -0700
Subject: [PATCH 3/9] Fix delete operator being included

---
 tensorflow/lite/micro/memory_planner/greedy_memory_planner.h | 1 +
 tensorflow/lite/micro/memory_planner/linear_memory_planner.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/tensorflow/lite/micro/memory_planner/greedy_memory_planner.h b/tensorflow/lite/micro/memory_planner/greedy_memory_planner.h
index f2c77ed94f3..29ae39c9bf1 100644
--- a/tensorflow/lite/micro/memory_planner/greedy_memory_planner.h
+++ b/tensorflow/lite/micro/memory_planner/greedy_memory_planner.h
@@ -87,6 +87,7 @@ class GreedyMemoryPlanner : public MemoryPlanner {
   };
 
  private:
+  TF_LITE_REMOVE_VIRTUAL_DELETE
   // Whether a buffer is active in a given time range.
   bool DoesEntryOverlapInTime(const ListEntry* entry, const int first_time_used,
                               const int last_time_used) const;
diff --git a/tensorflow/lite/micro/memory_planner/linear_memory_planner.h b/tensorflow/lite/micro/memory_planner/linear_memory_planner.h
index 4d77e778237..b04b2c96788 100644
--- a/tensorflow/lite/micro/memory_planner/linear_memory_planner.h
+++ b/tensorflow/lite/micro/memory_planner/linear_memory_planner.h
@@ -37,6 +37,7 @@ class LinearMemoryPlanner : public MemoryPlanner {
                                   int buffer_index, int* offset) override;
 
  private:
+  TF_LITE_REMOVE_VIRTUAL_DELETE
   static constexpr int kMaxBufferCount = 1024;
   size_t buffer_offsets_[kMaxBufferCount];
   int current_buffer_count_;

From 9903797166938a3f30e9cfb73d669b969f990eed Mon Sep 17 00:00:00 2001
From: "Kwabena W. Agyeman" <kwagyeman@live.com>
Date: Sun, 24 Nov 2019 16:05:36 -0800
Subject: [PATCH 4/9] Update debug log

---
 tensorflow/lite/experimental/micro/openmvcam/debug_log.cc | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc b/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
index c911b5c7b08..d0499ab3612 100644
--- a/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
+++ b/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
@@ -24,7 +24,6 @@ static char *py_tf_putchar_buffer = NULL;
 static size_t py_tf_putchar_buffer_len = 0;
 
 extern "C" void DebugLog(const char* s) {
-<<<<<<< HEAD
   for (size_t i = 0, j = strlen(s); i < j; i++) {
     if (py_tf_putchar_buffer_len) {
       *py_tf_putchar_buffer++ = s[i];
@@ -33,7 +32,4 @@ extern "C" void DebugLog(const char* s) {
       putchar(s[i]);
     }
   }
-=======
-  puts(s);
->>>>>>> Change printf to puts
 }

From 654854703724eb9428b0b97c044e36200cf63233 Mon Sep 17 00:00:00 2001
From: "Kwabena W. Agyeman" <kwagyeman@live.com>
Date: Sun, 24 Nov 2019 16:41:49 -0800
Subject: [PATCH 5/9] Remove static

---
 tensorflow/lite/experimental/micro/openmvcam/debug_log.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc b/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
index d0499ab3612..0caab617c8b 100644
--- a/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
+++ b/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
@@ -20,8 +20,8 @@ limitations under the License.
 // These are set by openmv py_tf.c code to redirect printing to an error message
 // buffer...
 
-static char *py_tf_putchar_buffer = NULL;
-static size_t py_tf_putchar_buffer_len = 0;
+char *py_tf_putchar_buffer = NULL;
+size_t py_tf_putchar_buffer_len = 0;
 
 extern "C" void DebugLog(const char* s) {
   for (size_t i = 0, j = strlen(s); i < j; i++) {

From a1dd6f9580caa655d9e5af88cfd0581f87843564 Mon Sep 17 00:00:00 2001
From: "Kwabena W. Agyeman" <kwagyeman@live.com>
Date: Thu, 19 Dec 2019 09:56:33 -0800
Subject: [PATCH 6/9] Add openmv cam

---
 tensorflow/lite/micro/openmvcam/debug_log.cc | 35 ++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 tensorflow/lite/micro/openmvcam/debug_log.cc

diff --git a/tensorflow/lite/micro/openmvcam/debug_log.cc b/tensorflow/lite/micro/openmvcam/debug_log.cc
new file mode 100644
index 00000000000..0caab617c8b
--- /dev/null
+++ b/tensorflow/lite/micro/openmvcam/debug_log.cc
@@ -0,0 +1,35 @@
+/* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+==============================================================================*/
+
+#include <stdio.h>
+#include <string.h>
+#include "tensorflow/lite/experimental/micro/debug_log.h"
+
+// These are set by openmv py_tf.c code to redirect printing to an error message
+// buffer...
+
+char *py_tf_putchar_buffer = NULL;
+size_t py_tf_putchar_buffer_len = 0;
+
+extern "C" void DebugLog(const char* s) {
+  for (size_t i = 0, j = strlen(s); i < j; i++) {
+    if (py_tf_putchar_buffer_len) {
+      *py_tf_putchar_buffer++ = s[i];
+      py_tf_putchar_buffer_len--;
+    } else {
+      putchar(s[i]);
+    }
+  }
+}

From 66f03f534fcecafcc030d7d3d9c2551735f662fc Mon Sep 17 00:00:00 2001
From: "Kwabena W. Agyeman" <kwagyeman@live.com>
Date: Thu, 19 Dec 2019 09:56:54 -0800
Subject: [PATCH 7/9] Add openmv cam

---
 .../experimental/micro/openmvcam/debug_log.cc | 35 -------------------
 1 file changed, 35 deletions(-)
 delete mode 100644 tensorflow/lite/experimental/micro/openmvcam/debug_log.cc

diff --git a/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc b/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
deleted file mode 100644
index 0caab617c8b..00000000000
--- a/tensorflow/lite/experimental/micro/openmvcam/debug_log.cc
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-==============================================================================*/
-
-#include <stdio.h>
-#include <string.h>
-#include "tensorflow/lite/experimental/micro/debug_log.h"
-
-// These are set by openmv py_tf.c code to redirect printing to an error message
-// buffer...
-
-char *py_tf_putchar_buffer = NULL;
-size_t py_tf_putchar_buffer_len = 0;
-
-extern "C" void DebugLog(const char* s) {
-  for (size_t i = 0, j = strlen(s); i < j; i++) {
-    if (py_tf_putchar_buffer_len) {
-      *py_tf_putchar_buffer++ = s[i];
-      py_tf_putchar_buffer_len--;
-    } else {
-      putchar(s[i]);
-    }
-  }
-}

From 520533a52bd067a5c785e5e021981eb96eddf6dc Mon Sep 17 00:00:00 2001
From: "Kwabena W. Agyeman" <kwagyeman@live.com>
Date: Thu, 19 Dec 2019 10:31:56 -0800
Subject: [PATCH 8/9] Fix debug path

---
 tensorflow/lite/micro/openmvcam/debug_log.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tensorflow/lite/micro/openmvcam/debug_log.cc b/tensorflow/lite/micro/openmvcam/debug_log.cc
index 0caab617c8b..345a2c20226 100644
--- a/tensorflow/lite/micro/openmvcam/debug_log.cc
+++ b/tensorflow/lite/micro/openmvcam/debug_log.cc
@@ -15,7 +15,7 @@ limitations under the License.
 
 #include <stdio.h>
 #include <string.h>
-#include "tensorflow/lite/experimental/micro/debug_log.h"
+#include "tensorflow/lite/micro/debug_log.h"
 
 // These are set by openmv py_tf.c code to redirect printing to an error message
 // buffer...

From b01309c36f90e7cbbca7d7b7cc2d176eed70cc87 Mon Sep 17 00:00:00 2001
From: "Kwabena W. Agyeman" <kwagyeman@live.com>
Date: Thu, 20 Feb 2020 22:24:48 -0800
Subject: [PATCH 9/9] Remove adding delete operators

---
 tensorflow/lite/micro/memory_planner/greedy_memory_planner.h | 1 -
 tensorflow/lite/micro/memory_planner/linear_memory_planner.h | 1 -
 2 files changed, 2 deletions(-)

diff --git a/tensorflow/lite/micro/memory_planner/greedy_memory_planner.h b/tensorflow/lite/micro/memory_planner/greedy_memory_planner.h
index 29ae39c9bf1..f2c77ed94f3 100644
--- a/tensorflow/lite/micro/memory_planner/greedy_memory_planner.h
+++ b/tensorflow/lite/micro/memory_planner/greedy_memory_planner.h
@@ -87,7 +87,6 @@ class GreedyMemoryPlanner : public MemoryPlanner {
   };
 
  private:
-  TF_LITE_REMOVE_VIRTUAL_DELETE
   // Whether a buffer is active in a given time range.
   bool DoesEntryOverlapInTime(const ListEntry* entry, const int first_time_used,
                               const int last_time_used) const;
diff --git a/tensorflow/lite/micro/memory_planner/linear_memory_planner.h b/tensorflow/lite/micro/memory_planner/linear_memory_planner.h
index b04b2c96788..4d77e778237 100644
--- a/tensorflow/lite/micro/memory_planner/linear_memory_planner.h
+++ b/tensorflow/lite/micro/memory_planner/linear_memory_planner.h
@@ -37,7 +37,6 @@ class LinearMemoryPlanner : public MemoryPlanner {
                                   int buffer_index, int* offset) override;
 
  private:
-  TF_LITE_REMOVE_VIRTUAL_DELETE
   static constexpr int kMaxBufferCount = 1024;
   size_t buffer_offsets_[kMaxBufferCount];
   int current_buffer_count_;