Merge "mediautils::SetviceSingleton : fix missing onServiceDied notification" into main
diff --git a/media/utils/include/mediautils/ServiceSingleton.h b/media/utils/include/mediautils/ServiceSingleton.h
index fe8e9f2..f3208cb 100644
--- a/media/utils/include/mediautils/ServiceSingleton.h
+++ b/media/utils/include/mediautils/ServiceSingleton.h
@@ -299,9 +299,15 @@
audio_utils::unique_lock ul(mMutex);
auto originalService = std::get<BaseInterfaceType<Service>>(mService);
if (originalService != service) {
+ if (originalService != nullptr) {
+ invalidateService_l<Service>();
+ }
mService = service;
mValid = true;
ul.unlock();
+ if (originalService != nullptr) {
+ traits->onServiceDied(interfaceFromBase<Service>(originalService));
+ }
traits->onNewService(service);
ul.lock();
setDeathNotifier_l<Service>(service);