Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60ffbe05 authored by Marco Nelissen's avatar Marco Nelissen Committed by Android (Google) Code Review
Browse files

Merge "Fix memory leak in getConnectionState" into lmp-dev

parents 9dd4a2dd 961ec21a
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -3874,7 +3874,7 @@ audio_devices_t AudioPolicyManager::getDeviceForStrategy(routing_strategy strate
            if (((mAvailableInputDevices.types() &
                    AUDIO_DEVICE_IN_TELEPHONY_RX & ~AUDIO_DEVICE_BIT_IN) == 0) ||
                    (((txDevice & availablePrimaryInputDevices() & ~AUDIO_DEVICE_BIT_IN) != 0) &&
                         (hwOutputDesc->mAudioPort->mModule->mHalVersion <
                         (hwOutputDesc->getAudioPort()->mModule->mHalVersion <
                             AUDIO_DEVICE_API_VERSION_3_0))) {
                availableOutputDeviceTypes = availablePrimaryOutputDevices();
            }
@@ -5070,7 +5070,6 @@ AudioPolicyManager::AudioOutputDescriptor::AudioOutputDescriptor(
        mStrategyMutedByDevice[i] = false;
    }
    if (profile != NULL) {
        mAudioPort = profile;
        mFlags = profile->mFlags;
        mSamplingRate = profile->pickSamplingRate();
        mFormat = profile->pickFormat();
@@ -5253,7 +5252,6 @@ AudioPolicyManager::AudioInputDescriptor::AudioInputDescriptor(const sp<IOProfil
      mInputSource(AUDIO_SOURCE_DEFAULT), mProfile(profile), mIsSoundTrigger(false)
{
    if (profile != NULL) {
        mAudioPort = profile;
        mSamplingRate = profile->pickSamplingRate();
        mFormat = profile->pickFormat();
        mChannelMask = profile->pickChannelMask();
@@ -6273,33 +6271,34 @@ status_t AudioPolicyManager::AudioPortConfig::applyAudioPortConfig(
    localBackupConfig.config_mask = config->config_mask;
    toAudioPortConfig(&localBackupConfig);

    if (mAudioPort == 0) {
    sp<AudioPort> audioport = getAudioPort();
    if (audioport == 0) {
        status = NO_INIT;
        goto exit;
    }
    if (config->config_mask & AUDIO_PORT_CONFIG_SAMPLE_RATE) {
        status = mAudioPort->checkExactSamplingRate(config->sample_rate);
        status = audioport->checkExactSamplingRate(config->sample_rate);
        if (status != NO_ERROR) {
            goto exit;
        }
        mSamplingRate = config->sample_rate;
    }
    if (config->config_mask & AUDIO_PORT_CONFIG_CHANNEL_MASK) {
        status = mAudioPort->checkExactChannelMask(config->channel_mask);
        status = audioport->checkExactChannelMask(config->channel_mask);
        if (status != NO_ERROR) {
            goto exit;
        }
        mChannelMask = config->channel_mask;
    }
    if (config->config_mask & AUDIO_PORT_CONFIG_FORMAT) {
        status = mAudioPort->checkFormat(config->format);
        status = audioport->checkFormat(config->format);
        if (status != NO_ERROR) {
            goto exit;
        }
        mFormat = config->format;
    }
    if (config->config_mask & AUDIO_PORT_CONFIG_GAIN) {
        status = mAudioPort->checkGain(&config->gain, config->gain.index);
        status = audioport->checkGain(&config->gain, config->gain.index);
        if (status != NO_ERROR) {
            goto exit;
        }
@@ -6486,7 +6485,6 @@ AudioPolicyManager::DeviceDescriptor::DeviceDescriptor(const String8& name, audi
                             NULL),
                     mDeviceType(type), mAddress(""), mId(0)
{
    mAudioPort = this;
    if (mGains.size() > 0) {
        mGains[0]->getDefaultConfig(&mGain);
    }
+4 −1
Original line number Diff line number Diff line
@@ -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;
        };