commit | ed722378ac4e16eec6161c3e15bbd829f7645c1e | [log] [tgz] |
---|---|---|
author | Andy Hung <hunga@google.com> | Mon Sep 18 22:00:21 2023 +0000 |
committer | Android Build Cherrypicker Worker <android-build-cherrypicker-worker@google.com> | Mon Sep 18 22:00:21 2023 +0000 |
tree | 737e799e41cea0473b72ce81f112775e0fbd446e | |
parent | c36f3abcb686ba0e216565c674606e212715ffd1 [diff] |
AudioPolicyManager: Fix memory leak Refbase objects can leak the weakref_impl if created on the stack. Fix deviceToAudioPort(). Test: see bug Bug: 295257845 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:5b9a611ed53095a41e3e91b0cebf07701289b4c3) Merged-In: I7d0363b4a1b725bdfa4949b85eb1a78c8b3d8ace Change-Id: I7d0363b4a1b725bdfa4949b85eb1a78c8b3d8ace
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp index ad8cdb9..daf3f39 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -452,9 +452,9 @@ status_t AudioPolicyManager::deviceToAudioPort(audio_devices_t device, const char* device_address, const char* device_name, media::AudioPortFw* aidlPort) { - DeviceDescriptorBase devDescr(device, device_address); - devDescr.setName(device_name); - return devDescr.writeToParcelable(aidlPort); + const auto devDescr = sp<DeviceDescriptorBase>::make(device, device_address); + devDescr->setName(device_name); + return devDescr->writeToParcelable(aidlPort); } void AudioPolicyManager::setEngineDeviceConnectionState(const sp<DeviceDescriptor> device,