diff options
author | 2024-11-06 12:54:24 -0800 | |
---|---|---|
committer | 2024-11-06 12:54:24 -0800 | |
commit | f4183a51c4ce2ec89b589215ce55d7907fe4b632 (patch) | |
tree | e83a5bb9182516f5e38ee562350b493e44069048 /libs/battery/LongArrayMultiStateCounter.cpp | |
parent | 835351257e19a20115b979accc6e7bde1bf61fd6 (diff) |
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
Diffstat (limited to 'libs/battery/LongArrayMultiStateCounter.cpp')
-rw-r--r-- | libs/battery/LongArrayMultiStateCounter.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libs/battery/LongArrayMultiStateCounter.cpp b/libs/battery/LongArrayMultiStateCounter.cpp index 35c40ab7e6..334d84b6b5 100644 --- a/libs/battery/LongArrayMultiStateCounter.cpp +++ b/libs/battery/LongArrayMultiStateCounter.cpp @@ -46,9 +46,12 @@ Uint64ArrayRW &Uint64ArrayRW::operator=(const Uint64Array &t) { } 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; } } |