D27505: Do not crash when icon's width or height is 0
Arjen Hiemstra
noreply at phabricator.kde.org
Wed Feb 19 14:46:04 GMT 2020
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20200219/67134dd7/attachment.html>
More information about the Plasma-devel
mailing list