aaudio: fix leak of AAudioBinderClient
Made it a Singleton that gets reused.
Bug: 37992613
Test: write_sine_callback.cpp
Change-Id: I63c045bd71d3bc1fc84f5fd4d7a6159fa5184c1c
Signed-off-by: Phil Burk <philburk@google.com>
diff --git a/media/libaaudio/src/binding/AAudioBinderClient.cpp b/media/libaaudio/src/binding/AAudioBinderClient.cpp
index 3f1bba3..435b30f 100644
--- a/media/libaaudio/src/binding/AAudioBinderClient.cpp
+++ b/media/libaaudio/src/binding/AAudioBinderClient.cpp
@@ -22,6 +22,7 @@
#include <binder/IServiceManager.h>
#include <utils/Mutex.h>
#include <utils/RefBase.h>
+#include <utils/Singleton.h>
#include <aaudio/AAudio.h>
@@ -47,6 +48,8 @@
static android::Mutex gServiceLock;
static sp<IAAudioService> gAAudioService;
+ANDROID_SINGLETON_STATIC_INSTANCE(AAudioBinderClient);
+
// TODO Share code with other service clients.
// Helper function to get access to the "AAudioService" service.
// This code was modeled after frameworks/av/media/libaudioclient/AudioSystem.cpp
@@ -81,7 +84,8 @@
}
AAudioBinderClient::AAudioBinderClient()
- : AAudioServiceInterface() {}
+ : AAudioServiceInterface()
+ , Singleton<AAudioBinderClient>() {}
AAudioBinderClient::~AAudioBinderClient() {}