From 0dfc7b0233631d661f2415c7b450b9fc5bc72aa1 Mon Sep 17 00:00:00 2001 From: pxd2022 Date: Sat, 23 Nov 2024 11:26:11 +0800 Subject: [PATCH] fix free bug Signed-off-by: pxd2022 --- display/composer/cache_manager/cache_manager.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/display/composer/cache_manager/cache_manager.h b/display/composer/cache_manager/cache_manager.h index 239b144d..51f95f58 100644 --- a/display/composer/cache_manager/cache_manager.h +++ b/display/composer/cache_manager/cache_manager.h @@ -85,6 +85,9 @@ public: auto cacheItem = caches_.find(id); if (cacheItem != caches_.end()) { HDF_LOGI("%{public}s: intend to insert a existing cache, SeqNo=%{public}d", __func__, id); + if (cleanUpFunc_ && cacheItem->second != nullptr) { + cleanUpFunc_(cacheItem->second); + } cacheItem->second.reset(cache); } else { if (cacheCountMax_ != 0 && caches_.size() >= cacheCountMax_) { @@ -201,6 +204,9 @@ public: auto cacheItem = caches_.find(id); if (cacheItem != caches_.end()) { HDF_LOGI("%{public}s: intend to insert a existing cache, SeqNo=%{public}d", __func__, id); + if (cleanUpFunc_ && cacheItem->second != nullptr) { + cleanUpFunc_(cacheItem->second); + } cacheItem->second = OHOS::sptr(cache); } else { if (cacheCountMax_ != 0 && caches_.size() >= cacheCountMax_) { -- Gitee