From a4f64ace456a548373dabf4a7e9688fae2963c3b Mon Sep 17 00:00:00 2001 From: yunhanw-google Date: Tue, 12 Nov 2024 21:50:35 -0800 Subject: [PATCH] [ICD] Shutdown icd client storage when destroying android controller (#36348) * Shutdown DefautICDClientStorage when destorying Android controller * Restyled by whitespace * Update DefaultICDClientStorage.h Co-authored-by: Boris Zbarsky --------- Co-authored-by: Restyled.io Co-authored-by: Boris Zbarsky --- src/app/icd/client/DefaultICDClientStorage.cpp | 9 +++++++++ src/app/icd/client/DefaultICDClientStorage.h | 6 ++++++ src/controller/java/AndroidDeviceControllerWrapper.cpp | 1 + 3 files changed, 16 insertions(+) diff --git a/src/app/icd/client/DefaultICDClientStorage.cpp b/src/app/icd/client/DefaultICDClientStorage.cpp index c50bb621a2dc3a..0e7bcaa94dfae3 100644 --- a/src/app/icd/client/DefaultICDClientStorage.cpp +++ b/src/app/icd/client/DefaultICDClientStorage.cpp @@ -542,5 +542,14 @@ CHIP_ERROR DefaultICDClientStorage::ProcessCheckInPayload(const ByteSpan & paylo iterator->Release(); return CHIP_ERROR_NOT_FOUND; } + +void DefaultICDClientStorage::Shutdown() +{ + mICDClientInfoIterators.ReleaseAll(); + mpClientInfoStore = nullptr; + mpKeyStore = nullptr; + mFabricList.clear(); +} + } // namespace app } // namespace chip diff --git a/src/app/icd/client/DefaultICDClientStorage.h b/src/app/icd/client/DefaultICDClientStorage.h index 13064fe649c61b..09431b701460c7 100644 --- a/src/app/icd/client/DefaultICDClientStorage.h +++ b/src/app/icd/client/DefaultICDClientStorage.h @@ -120,6 +120,12 @@ class DefaultICDClientStorage : public ICDClientStorage CHIP_ERROR ProcessCheckInPayload(const ByteSpan & payload, ICDClientInfo & clientInfo, Protocols::SecureChannel::CounterType & counter) override; + /** + * Shut down DefaultICDClientStorage + * + */ + void Shutdown(); + #if CONFIG_BUILD_FOR_HOST_UNIT_TEST size_t GetFabricListSize() { return mFabricList.size(); } diff --git a/src/controller/java/AndroidDeviceControllerWrapper.cpp b/src/controller/java/AndroidDeviceControllerWrapper.cpp index ba0342629a73df..1c49fb8d966c65 100644 --- a/src/controller/java/AndroidDeviceControllerWrapper.cpp +++ b/src/controller/java/AndroidDeviceControllerWrapper.cpp @@ -52,6 +52,7 @@ using namespace TLV; AndroidDeviceControllerWrapper::~AndroidDeviceControllerWrapper() { + getICDClientStorage()->Shutdown(); mController->Shutdown(); #ifndef JAVA_MATTER_CONTROLLER_TEST