diff options
author | Marco Nelissen <marcone@google.com> | 2014-08-25 15:58:39 -0700 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2014-08-26 16:07:45 -0700 |
commit | 961ec21a5878517ce6db27bad8da269637c45a44 (patch) | |
tree | 73d1f567c2d82197186f9f11141d4767040a405f /services/audiopolicy/AudioPolicyManager.h | |
parent | d42173a44721af1a600b9c8599bc736394fcc724 (diff) | |
download | frameworks_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.h | 5 |
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; }; |