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