AudioPolicyManager: AudioInputDescriptor open ref count cleanup
Always initialize the mOpenRefCount field.
Add functions for management for open ref count.
Change-Id: I0bbd021283047abfebbc108ced68c79e29297f25
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index 4d90546..6ae2aff 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -1456,7 +1456,6 @@
sp<AudioInputDescriptor> inputDesc = new AudioInputDescriptor(profile);
inputDesc->mInputSource = inputSource;
inputDesc->mRefCount = 0;
- inputDesc->mOpenRefCount = 1;
inputDesc->mSamplingRate = profileSamplingRate;
inputDesc->mFormat = profileFormat;
inputDesc->mChannelMask = profileChannelMask;
@@ -1464,6 +1463,7 @@
inputDesc->mSessions.add(session);
inputDesc->mIsSoundTrigger = isSoundTrigger;
inputDesc->mPolicyMix = policyMix;
+ inputDesc->changeOpenRefCount(1);
ALOGV("getInputForAttr() returns input type = %d", *inputType);
@@ -1648,12 +1648,12 @@
return;
}
inputDesc->mSessions.remove(session);
- if (inputDesc->mOpenRefCount == 0) {
- ALOGW("releaseInput() invalid open ref count %d", inputDesc->mOpenRefCount);
+ if (inputDesc->getOpenRefCount() == 0) {
+ ALOGW("releaseInput() invalid open ref count %d", inputDesc->getOpenRefCount());
return;
}
- inputDesc->mOpenRefCount--;
- if (inputDesc->mOpenRefCount > 0) {
+ inputDesc->changeOpenRefCount(-1);
+ if (inputDesc->getOpenRefCount() > 0) {
ALOGV("releaseInput() exit > 0");
return;
}