<table><tr><td style="">broulik created this revision.<br />broulik added reviewers: Plasma, hein.<br />Restricted Application added a project: Plasma.<br />Restricted Application added a subscriber: plasma-devel.<br />broulik requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D10586" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>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.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>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.</p>

<p>Backtrace</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">(gdb) bt
#0  0x00007fffe389d2a6 in QTransformToFTMatrix (matrix=...) at freetype/qfontengine_ft.cpp:1533                                                              
#1  QFontEngineFT::loadGlyphSet (this=0x7ffe50114c90, matrix=...) at freetype/qfontengine_ft.cpp:1547                                                        
#2  0x00007fffe389d7e4 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  0x00007fffe389fa26 in QFontEngineFT::alphaMapForGlyph (this=this@entry=0x7ffe50114c90, g=g@entry=28, subPixelPosition=..., subPixelPosition@entry=...,   
    t=...) at freetype/qfontengine_ft.cpp:2089                                                                                                               
#4  0x00007fffe389750e in QFontEngineFT::alphaMapForGlyph (this=0x7ffe50114c90, g=28, subPixelPosition=...) at freetype/qfontengine_ft.cpp:2082              
#5  0x00007ffff26d851f in QFontEngine::alphaMapForGlyph (this=this@entry=0x7ffe50114c90, glyph=glyph@entry=28, subPixelPosition=...,                         
    subPixelPosition@entry=..., t=...) at text/qfontengine.cpp:879                                                                                           
#6  0x00007fffe389fba0 in QFontEngineFT::alphaMapForGlyph (this=this@entry=0x7ffe50114c90, g=g@entry=28, subPixelPosition=..., subPixelPosition@entry=...,   
    t=...) at freetype/qfontengine_ft.cpp:2100                                                                                                               
#7  0x00007fffe389750e in QFontEngineFT::alphaMapForGlyph (this=0x7ffe50114c90, g=28, subPixelPosition=...) at freetype/qfontengine_ft.cpp:2082              
#8  0x00007ffff26d851f in QFontEngine::alphaMapForGlyph (this=this@entry=0x7ffe50114c90, glyph=glyph@entry=28, subPixelPosition=...,                         
    subPixelPosition@entry=..., t=...) at text/qfontengine.cpp:879                                                                                           
#9  0x00007fffe389fba0 in QFontEngineFT::alphaMapForGlyph (this=this@entry=0x7ffe50114c90, g=g@entry=28, subPixelPosition=..., subPixelPosition@entry=...,   
    t=...) at freetype/qfontengine_ft.cpp:2100                                                                                                               
#10 0x00007fffe389750e in QFontEngineFT::alphaMapForGlyph (this=0x7ffe50114c90, g=28, subPixelPosition=...) at freetype/qfontengine_ft.cpp:2082              
#11 0x00007ffff26d851f in QFontEngine::alphaMapForGlyph (this=this@entry=0x7ffe50114c90, glyph=glyph@entry=28, subPixelPosition=...,                         
    subPixelPosition@entry=..., t=...) at text/qfontengine.cpp:879                                                                                           
#12 0x00007fffe389fba0 in QFontEngineFT::alphaMapForGlyph (this=this@entry=0x7ffe50114c90, g=g@entry=28, subPixelPosition=..., subPixelPosition@entry=...,   
    t=...) at freetype/qfontengine_ft.cpp:2100</pre></div>

<p>and so on</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R119 Plasma Desktop</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D10586" rel="noreferrer">https://phabricator.kde.org/D10586</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>applets/taskmanager/package/contents/ui/Badge.qml</div></div></div><br /><div><strong>To: </strong>broulik, Plasma, hein<br /><strong>Cc: </strong>plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart<br /></div>