rjvbb added a comment.

  A priori this should be fine, and it might even address the long standing bug 
by leaving more time for Phonon objects to "do their thing". It might be an 
idea though to include a `qCDebug()` probe that outputs the number of items 
left for auto-cleanup in `m_reusablePhonons`.
  
  But what's the official stance on deleting objects (widgets) that have a 
parent and are thus capable of auto-cleanup? AFAIK one can still delete them 
explicitly, and if they're reparented during that process they should no longer 
be included in the cleanup step performed by their original parent's dtor.
  
  IOW, if you're right, isn't there a bug to address in `Phonon::MediaObject`?
  
  There can also be another reason *in release builds* for double frees (which 
your change will probably catch, too): `NotifyByAudio::notify()` does
  
    Q_ASSERT(!m_notifications.value(m));
    m_notifications.insert(m, notification);
  
  and `NotifyByAudio::finishNotification()` does
  
        m_notifications.remove(m);
    //...
        m_reusablePhonons.append(m);
  
  Release builds do not check if `m_notifications` already contains the object 
being added. It seems extremely unlikely that this would ever happen, but 
apparently the code author thought it could.

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D6376

To: cullmann, #frameworks
Cc: rjvbb

Reply via email to