diff options
author | 2025-01-09 00:56:41 -0800 | |
---|---|---|
committer | 2025-01-09 00:56:41 -0800 | |
commit | 87a06b7f8a3ed0c994fbf32c981f030227d21254 (patch) | |
tree | c7857b9d39735a0e8e9567bc41b39c4168619e44 /libs/binder/BackendUnifiedServiceManager.cpp | |
parent | 4ac78a180dbc9429f4d4bd8a1bdde9f88e9ae6dd (diff) | |
parent | 2b61344ddd35ceb216a836157a10769cbfaac0fa (diff) |
Merge "[native] Restore ServiceManager#checkService() to return IBinder" into main
Diffstat (limited to 'libs/binder/BackendUnifiedServiceManager.cpp')
-rw-r--r-- | libs/binder/BackendUnifiedServiceManager.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libs/binder/BackendUnifiedServiceManager.cpp b/libs/binder/BackendUnifiedServiceManager.cpp index ee3d6af742..4220cdd0e8 100644 --- a/libs/binder/BackendUnifiedServiceManager.cpp +++ b/libs/binder/BackendUnifiedServiceManager.cpp @@ -238,7 +238,17 @@ Status BackendUnifiedServiceManager::getService2(const ::std::string& name, os:: return status; } -Status BackendUnifiedServiceManager::checkService(const ::std::string& name, os::Service* _out) { +Status BackendUnifiedServiceManager::checkService(const ::std::string& name, + sp<IBinder>* _aidl_return) { + os::Service service; + Status status = checkService2(name, &service); + if (status.isOk()) { + *_aidl_return = service.get<os::Service::Tag::serviceWithMetadata>().service; + } + return status; +} + +Status BackendUnifiedServiceManager::checkService2(const ::std::string& name, os::Service* _out) { os::Service service; if (returnIfCached(name, _out)) { return Status::ok(); @@ -246,7 +256,7 @@ Status BackendUnifiedServiceManager::checkService(const ::std::string& name, os: Status status = Status::ok(); if (mTheRealServiceManager) { - status = mTheRealServiceManager->checkService(name, &service); + status = mTheRealServiceManager->checkService2(name, &service); } if (status.isOk()) { status = toBinderService(name, service, _out); |