commit | c0a17d2dfcb32fd237aab9862238fd7bff657f5c | [log] [tgz] |
---|---|---|
author | Pawan Wagh <waghpawan@google.com> | Thu Sep 22 02:53:49 2022 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Thu Sep 22 02:53:49 2022 +0000 |
tree | 9f848179b708ae2bbc58a3685c0352c06a35a367 | |
parent | f59b763988101f71430558c2478f2d3e08b2047b [diff] | |
parent | 296c736696ac75de3399538b4c83642044f20fc1 [diff] |
Merge "servicemanager : Adding clear API to ServiceManager" am: 00a54e416a am: 77527d1c6b am: 1c1f4122c4 am: 6eef639486 am: 296c736696 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2222273 Change-Id: Ia0f50c43c40f8b6ae2c0485b1dc9b5ca123bf0e6 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/cmds/servicemanager/ServiceManager.cpp b/cmds/servicemanager/ServiceManager.cpp index 3cfe529..0727383 100644 --- a/cmds/servicemanager/ServiceManager.cpp +++ b/cmds/servicemanager/ServiceManager.cpp
@@ -762,4 +762,10 @@ return Status::ok(); } +void ServiceManager::clear() { + mNameToService.clear(); + mNameToRegistrationCallback.clear(); + mNameToClientCallback.clear(); +} + } // namespace android
diff --git a/cmds/servicemanager/ServiceManager.h b/cmds/servicemanager/ServiceManager.h index 5e40319..c6db697 100644 --- a/cmds/servicemanager/ServiceManager.h +++ b/cmds/servicemanager/ServiceManager.h
@@ -58,6 +58,12 @@ void binderDied(const wp<IBinder>& who) override; void handleClientCallbacks(); + /** + * This API is added for debug purposes. It clears members which hold service and callback + * information. + */ + void clear(); + protected: virtual void tryStartService(const std::string& name);
diff --git a/cmds/servicemanager/ServiceManagerFuzzer.cpp b/cmds/servicemanager/ServiceManagerFuzzer.cpp index 39f8522..b76a6bd 100644 --- a/cmds/servicemanager/ServiceManagerFuzzer.cpp +++ b/cmds/servicemanager/ServiceManagerFuzzer.cpp
@@ -29,6 +29,7 @@ auto accessPtr = std::make_unique<Access>(); auto serviceManager = sp<ServiceManager>::make(std::move(accessPtr)); fuzzService(serviceManager, FuzzedDataProvider(data, size)); + serviceManager->clear(); return 0; }