ahiemstra created this revision.
ahiemstra added a reviewer: Kirigami.
Herald added a project: Kirigami.
Herald added a subscriber: plasma-devel.
ahiemstra requested review of this revision.

REVISION SUMMARY
  When Icon's width or height is 0, I get a crash with the following backtrace:
  
    #0  0x00007ffff7b9cd30 in QSGTexture::setFiltering(QSGTexture::Filtering) 
() from /usr/lib/libQt5Quick.so.5
    #1  0x00007ffff7bd439c in 
QSGOpaqueTextureMaterialShader::updateState(QSGMaterialShader::RenderState 
const&, QSGMaterial*, QSGMaterial*) () from /usr/lib/libQt5Quick.so.5
    #2  0x00007ffff7bb7857 in 
QSGBatchRenderer::Renderer::renderMergedBatch(QSGBatchRenderer::Batch const*) 
() from /usr/lib/libQt5Quick.so.5
    #3  0x00007ffff7bbd5b6 in QSGBatchRenderer::Renderer::renderBatches() () 
from /usr/lib/libQt5Quick.so.5
    #4  0x00007ffff7bbdcc5 in QSGBatchRenderer::Renderer::render() () from 
/usr/lib/libQt5Quick.so.5
    #5  0x00007ffff7ba1832 in QSGRenderer::renderScene(QSGBindable const&) () 
from /usr/lib/libQt5Quick.so.5
    #6  0x00007ffff7ba1d14 in QSGRenderer::renderScene(unsigned int) () from 
/usr/lib/libQt5Quick.so.5
    #7  0x00007ffff7c10713 in 
QSGDefaultRenderContext::renderNextFrame(QSGRenderer*, unsigned int) () from 
/usr/lib/libQt5Quick.so.5
    #8  0x00007ffff7c7b3a1 in QQuickWindowPrivate::renderSceneGraph(QSize 
const&, QSize const&) () from /usr/lib/libQt5Quick.so.5 
  
  This patch prevents Icon from doing anything when width or height is 0, 
avoiding the crash.

TEST PLAN
  The following QML code, when ran through qmlscene, no longer crashes:
  
    import QtQuick 2.12
    import org.kde.kirigami 2.11 as Kirigami
    Item { 
        Kirigami.Icon { source: "document-new" }
    }

REPOSITORY
  R169 Kirigami

BRANCH
  icon_crash

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

AFFECTED FILES
  src/icon.cpp

To: ahiemstra, #kirigami
Cc: plasma-devel, fbampaloukas, GB_2, domson, dkardarakos, ngraham, apol, 
ahiemstra, davidedmundson, mart, hein

Reply via email to