summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/AudioPolicyManager.h
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2014-08-25 15:58:39 -0700
committerMarco Nelissen <marcone@google.com>2014-08-26 16:07:45 -0700
commit961ec21a5878517ce6db27bad8da269637c45a44 (patch)
tree73d1f567c2d82197186f9f11141d4767040a405f /services/audiopolicy/AudioPolicyManager.h
parentd42173a44721af1a600b9c8599bc736394fcc724 (diff)
downloadframeworks_av-961ec21a5878517ce6db27bad8da269637c45a44.zip
frameworks_av-961ec21a5878517ce6db27bad8da269637c45a44.tar.gz
frameworks_av-961ec21a5878517ce6db27bad8da269637c45a44.tar.bz2
Fix memory leak in getConnectionState
Turns out having an sp<> point at the containing object doesn't really work so well. Bug: 17210991 Change-Id: I4bcb0c38adffc574d661f0772583357868f6c5b4
Diffstat (limited to 'services/audiopolicy/AudioPolicyManager.h')
-rw-r--r--services/audiopolicy/AudioPolicyManager.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/services/audiopolicy/AudioPolicyManager.h b/services/audiopolicy/AudioPolicyManager.h
index e3e3172..6712eb7 100644
--- a/services/audiopolicy/AudioPolicyManager.h
+++ b/services/audiopolicy/AudioPolicyManager.h
@@ -297,7 +297,7 @@ protected:
struct audio_port_config *backupConfig = NULL);
virtual void toAudioPortConfig(struct audio_port_config *dstConfig,
const struct audio_port_config *srcConfig = NULL) const = 0;
- sp<AudioPort> mAudioPort;
+ virtual sp<AudioPort> getAudioPort() const = 0;
uint32_t mSamplingRate;
audio_format_t mFormat;
audio_channel_mask_t mChannelMask;
@@ -330,6 +330,7 @@ protected:
bool equals(const sp<DeviceDescriptor>& other) const;
virtual void toAudioPortConfig(struct audio_port_config *dstConfig,
const struct audio_port_config *srcConfig = NULL) const;
+ virtual sp<AudioPort> getAudioPort() const { return (AudioPort*) this; }
virtual void toAudioPort(struct audio_port *port) const;
@@ -462,6 +463,7 @@ protected:
virtual void toAudioPortConfig(struct audio_port_config *dstConfig,
const struct audio_port_config *srcConfig = NULL) const;
+ virtual sp<AudioPort> getAudioPort() const { return mProfile; }
void toAudioPort(struct audio_port *port) const;
audio_port_handle_t mId;
@@ -506,6 +508,7 @@ protected:
virtual void toAudioPortConfig(struct audio_port_config *dstConfig,
const struct audio_port_config *srcConfig = NULL) const;
+ virtual sp<AudioPort> getAudioPort() const { return mProfile; }
void toAudioPort(struct audio_port *port) const;
};