https://bugs.kde.org/show_bug.cgi?id=440751
--- Comment #11 from Vlad Zahorodnii <vlad.zahorod...@kde.org> ---
I think I found the culprit of this bug. The garbage collector seems to prefer
to keep "null or undefined" qobject wrappers in MemoryManager::sweep()
https://code.woboq.org/qt5/qtdeclarative/src/qml/memory/qv4mm.cpp.html#983

    if (MultiplyWrappedQObjectMap *multiplyWrappedQObjects =
engine->m_multiplyWrappedQObjects) {
        for (MultiplyWrappedQObjectMap::Iterator it =
multiplyWrappedQObjects->begin(); it != multiplyWrappedQObjects->end();) {
            if (!it.value().isNullOrUndefined())
                it = multiplyWrappedQObjects->erase(it);
            else
                ++it;
        }
    }

That looks very sketchy. If `!it.value().isNullOrUndefined()` is changed to
`it.value().isNullOrUndefined()`, tainted qobject wrappers don't get destroyed.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to