Fix native memory leak in Uint64ArrayRW

Bug: 377547685
Test: adb shell dumpsys batterystats --usage; adb shell dumpsys -t 60 meminfo --unreachable `adb shell pidof system_server` | grep "unreachable allocations"
Flag: EXEMPT bugfix
Change-Id: I2287379427a8de732eda866dfcc3d4129dfb890d
diff --git a/libs/battery/LongArrayMultiStateCounter.cpp b/libs/battery/LongArrayMultiStateCounter.cpp
index 35c40ab..334d84b 100644
--- a/libs/battery/LongArrayMultiStateCounter.cpp
+++ b/libs/battery/LongArrayMultiStateCounter.cpp
@@ -46,9 +46,12 @@
     }
     if (mSize != 0) {
         if (t.data() != nullptr) {
-            mData = new uint64_t[mSize];
+            if (mData == nullptr) {
+                mData = new uint64_t[mSize];
+            }
             memcpy(mData, t.data(), mSize * sizeof(uint64_t));
         } else {
+            delete[] mData;
             mData = nullptr;
         }
     }