1.4-SVN [NOTstripped][validity: 1.00][frames: 2][xine]

Andrew Turner andrewturner512 at googlemail.com
Wed Jan 24 00:44:47 UTC 2007


On 23/01/07, Jeff Mitchell <kde-dev at emailgoeshere.com> wrote:
> Andrew--
>
> The only two things I can think of, considering that the call came from
> mediumChanged, are that a receiver of the changedMedium signal is deleting
> the Medium pointer it's sent (which it shouldn't)
<snip>

It does:
void
DeviceManager::mediumChanged( const QString name )
{
    DEBUG_BLOCK
    if ( !m_valid )
        return;
    Medium *changedMedium = getDevice(name);
    if ( changedMedium != 0 )
        debug() << "[DeviceManager::mediumChanged] Obtained medium
name is " << name << ", id is: " << changedMedium->id() << endl;
    else
        debug() << "[DeviceManager::mediumChanged] Obtained medium is
null; name was " << name << endl;
    emit mediumChanged( changedMedium, name );
    delete changedMedium;
}

Look at the last line. I'll fix it tomorrow if nobody else has and go
looking for other erroneous delete calls for Medium items - there seem
to be a few in devicemanager.cpp, at least.

Andrew



More information about the Amarok mailing list