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);