broulik created this revision.
broulik added reviewers: Plasma, hein.
Restricted Application added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.
broulik requested review of this revision.
REVISION SUMMARY
When moving a horizontal panel around so it becomes vertical, the height of
the badge would grow enormous briefly during re-layouting causing a crash in
the font engine.
TEST PLAN
Had KMail sitting in my task bar with a badge, moved the panel from
horizontal to vertical. Previously it would reproducibly crash, now it doesn't
crash anymore.
Backtrace
(gdb) bt
#0 0x7fffe389d2a6 in QTransformToFTMatrix (matrix=...) at
freetype/qfontengine_ft.cpp:1533
#1 QFontEngineFT::loadGlyphSet (this=0x7ffe50114c90, matrix=...) at
freetype/qfontengine_ft.cpp:1547
#2 0x7fffe389d7e4 in QFontEngineFT::loadGlyphFor
(this=this@entry=0x7ffe50114c90, g=g@entry=28, subPixelPosition=...,
subPixelPosition@entry=...,
format=format@entry=QFontEngine::Format_A8, t=...,
fetchBoundingBox=fetchBoundingBox@entry=false, disableOutlineDrawing=true)
at freetype/qfontengine_ft.cpp:2058
#3 0x7fffe389fa26 in QFontEngineFT::alphaMapForGlyph
(this=this@entry=0x7ffe50114c90, g=g@entry=28, subPixelPosition=...,
subPixelPosition@entry=...,
t=...) at freetype/qfontengine_ft.cpp:2089
#4 0x7fffe389750e in QFontEngineFT::alphaMapForGlyph
(this=0x7ffe50114c90, g=28, subPixelPosition=...) at
freetype/qfontengine_ft.cpp:2082
#5 0x726d851f in QFontEngine::alphaMapForGlyph
(this=this@entry=0x7ffe50114c90, glyph=glyph@entry=28, subPixelPosition=...,
subPixelPosition@entry=..., t=...) at text/qfontengine.cpp:879
#6 0x7fffe389fba0 in QFontEngineFT::alphaMapForGlyph
(this=this@entry=0x7ffe50114c90, g=g@entry=28, subPixelPosition=...,
subPixelPosition@entry=...,
t=...) at freetype/qfontengine_ft.cpp:2100
#7 0x7fffe389750e in QFontEngineFT::alphaMapForGlyph
(this=0x7ffe50114c90, g=28, subPixelPosition=...) at
freetype/qfontengine_ft.cpp:2082
#8 0x726d851f in QFontEngine::alphaMapForGlyph
(this=this@entry=0x7ffe50114c90, glyph=glyph@entry=28, subPixelPosition=...,
subPixelPosition@entry=..., t=...) at text/qfontengine.cpp:879
#9 0x7fffe389fba0 in QFontEngineFT::alphaMapForGlyph
(this=this@entry=0x7ffe50114c90, g=g@entry=28, subPixelPosition=...,
subPixelPosition@entry=...,
t=...) at freetype/qfontengine_ft.cpp:2100
#10 0x7fffe389750e in QFontEngineFT::alphaMapForGlyph
(this=0x7ffe50114c90, g=28, subPixelPosition=...) at
freetype/qfontengine_ft.cpp:2082
#11 0x726d851f in QFontEngine::alphaMapForGlyph
(this=this@entry=0x7ffe50114c90, glyph=glyph@entry=28, subPixelPosition=...,
subPixelPosition@entry=..., t=...) at text/qfontengine.cpp:879
#12 0x7fffe389fba0 in QFontEngineFT::alphaMapForGlyph
(this=this@entry=0x7ffe50114c90, g=g@entry=28, subPixelPosition=...,
subPixelPosition@entry=...,
t=...) at freetype/qfontengine_ft.cpp:2100
and so on
REPOSITORY
R119 Plasma Desktop
REVISION DETAIL
https://phabricator.kde.org/D10586
AFFECTED FILES
applets/taskmanager/package/contents/ui/Badge.qml
To: broulik, #plasma, hein
Cc: plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg,
abetts, sebas, apol, mart