diff options
| author | 2020-08-07 16:14:02 +0000 | |
|---|---|---|
| committer | 2020-08-07 16:14:02 +0000 | |
| commit | 19b57edfb2c9b86e558849910aed8194e41c57b7 (patch) | |
| tree | 976347f8830b5f4ac348d7baca8dc308a1d311ef /cmds/servicemanager/ServiceManager.cpp | |
| parent | f58441c47621895eaa5b4276808058c97b3f2633 (diff) | |
| parent | e90f7bb197e7fa36f901034a532fd8765f3d5801 (diff) | |
Merge "servicemanager: Overwrite old service when a new one is registered" am: 9790d930d5 am: 9fb40a4ffb am: e90f7bb197
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1393259
Change-Id: I22c63ea2a1486bad53977130f8a8313f1d3fb80f
Diffstat (limited to 'cmds/servicemanager/ServiceManager.cpp')
| -rw-r--r-- | cmds/servicemanager/ServiceManager.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/cmds/servicemanager/ServiceManager.cpp b/cmds/servicemanager/ServiceManager.cpp index 1f9892a262..e80c3210f0 100644 --- a/cmds/servicemanager/ServiceManager.cpp +++ b/cmds/servicemanager/ServiceManager.cpp @@ -213,17 +213,18 @@ Status ServiceManager::addService(const std::string& name, const sp<IBinder>& bi return Status::fromExceptionCode(Status::EX_ILLEGAL_STATE); } - auto entry = mNameToService.emplace(name, Service { + // Overwrite the old service if it exists + mNameToService[name] = Service { .binder = binder, .allowIsolated = allowIsolated, .dumpPriority = dumpPriority, .debugPid = ctx.debugPid, - }); + }; auto it = mNameToRegistrationCallback.find(name); if (it != mNameToRegistrationCallback.end()) { for (const sp<IServiceCallback>& cb : it->second) { - entry.first->second.guaranteeClient = true; + mNameToService[name].guaranteeClient = true; // permission checked in registerForNotifications cb->onRegistration(name, binder); } |