Details
-
Bug
-
Resolution: Done
-
Not Evaluated
-
5.7
-
None
-
040d9da184f69ce548951e674353083967c137a2
Description
Run window example from qtdeclarative/examples/quick/window/ :
QMLSCENE_DEVICE=softwarecontext ./window
Press "Show" button, then close the new window, then press "Show" again. Segfault.
Stacktrace:
(gdb) thread [Current thread is 8 (Thread 0x7fffda639700 (LWP 5769))] (gdb) bt #0 0x00007fffed007223 in QFontEngineFT::loadGlyphSet (this=0x7fffd0003fe0, matrix=...) at ../gui/text/qfontengine_ft.cpp:1338 #1 0x00007fffed00954c in QFontEngineFT::loadGlyphFor (this=0x7fffd0003fe0, g=54, subPixelPosition=..., format=QFontEngine::Format_A8, t=..., fetchBoundingBox=false) at ../gui/text/qfontengine_ft.cpp:1795 #2 0x00007fffed009350 in QFontEngineFT::lockedAlphaMapForGlyph (this=0x7fffd0003fe0, glyphIndex=54, subPixelPosition=..., neededFormat=QFontEngine::Format_A8, t=..., offset=0x7fffda637510) at ../gui/text/qfontengine_ft.cpp:1763 #3 0x00007ffff70d63ba in QRasterPaintEngine::drawCachedGlyphs (this=0x7fffd000bd70, numGlyphs=13, glyphs=0x7fffd0007798, positions=0x7fffda637f20, fontEngine= 0x7fffd0003fe0) at painting/qpaintengine_raster.cpp:2762 #4 0x00007ffff70d7364 in QRasterPaintEngine::drawStaticTextItem (this=0x7fffd000bd70, textItem=0x7fffda637bb0) at painting/qpaintengine_raster.cpp:2989 #5 0x00007ffff70f336f in QPainterPrivate::drawGlyphs (this=0x7fffd00095d0, glyphArray=0x7fffd0007798, positions=0x7fffda637f20, glyphCount=13, fontEngine=0x7fffd0003fe0, overline=false, underline=false, strikeOut=false) at painting/qpainter.cpp:5619 #6 0x00007ffff70f2f77 in QPainter::drawGlyphRun (this=0x7fffda638800, position=..., glyphRun=...) at painting/qpainter.cpp:5575 #7 0x00007fffe3be05c0 in GlyphNode::paint (this=0x7fffd0007020, painter=0x7fffda638800) at glyphnode.cpp:100 #8 0x00007fffe3be0f45 in RenderingVisitor::visit (this=0x7fffda638870, node=0x7fffd0007020) at renderingvisitor.cpp:157 #9 0x00007fffe3be080c in QSGGlyphNode::accept (this=0x7fffd0007020, visitor=0x7fffda638870) at /mnt/old4/home/user/sources/qtbase/include/QtQuick/5.7.0/QtQuick/private/../../../../../../qtdeclarative/src/quick/scenegraph/qsgadaptationlayer_p.h:254 #10 0x00007ffff7801799 in QSGNodeVisitorEx::visitChildren (this=0x7fffda638870, node=0x7fffd00067d0) at scenegraph/qsgadaptationlayer.cpp:492 #11 0x00007ffff78016b8 in QSGNodeVisitorEx::visitChildren (this=0x7fffda638870, node=0x7fffd0003230) at scenegraph/qsgadaptationlayer.cpp:478 #12 0x00007ffff78016b8 in QSGNodeVisitorEx::visitChildren (this=0x7fffda638870, node=0x7fffd00030d0) at scenegraph/qsgadaptationlayer.cpp:478 #13 0x00007ffff78016b8 in QSGNodeVisitorEx::visitChildren (this=0x7fffda638870, node=0x7fffd0002c50) at scenegraph/qsgadaptationlayer.cpp:478 #14 0x00007ffff78016b8 in QSGNodeVisitorEx::visitChildren (this=0x7fffda638870, node=0x7fffd0002bf0) at scenegraph/qsgadaptationlayer.cpp:478 #15 0x00007fffe3bd2547 in SoftwareContext::Renderer::render (this=0x7fffd0002ea0) at context.cpp:120 #16 0x00007ffff77eacfe in QSGRenderer::renderScene (this=0x7fffd0002ea0, bindable=...) at scenegraph/coreapi/qsgrenderer.cpp:223 #17 0x00007fffe3bd22bd in SoftwareContext::Renderer::renderScene (this=0x7fffd0002ea0, fboId=0) at context.cpp:99 #18 0x00007ffff780610d in QSGRenderContext::renderNextFrame (this=0x74f2b0, renderer=0x7fffd0002ea0, fboId=0) at scenegraph/qsgcontext.cpp:561 #19 0x00007fffe3bd2aa7 in SoftwareContext::RenderContext::renderNextFrame (this=0x74f2b0, renderer=0x7fffd0002ea0, fbo=0) at context.cpp:249 #20 0x00007ffff7864371 in QQuickWindowPrivate::renderSceneGraph (this=0x74ed40, size=...) at items/qquickwindow.cpp:393 #21 0x00007fffe3be441e in RenderThread::syncAndRender (this=0x7e9cd0) at threadedrenderloop.cpp:546 #22 0x00007fffe3be4c82 in RenderThread::run (this=0x7e9cd0) at threadedrenderloop.cpp:624 #23 0x00007ffff5942730 in QThreadPrivate::start (arg=0x7e9cd0) at thread/qthread_unix.cpp:343 #24 0x00007ffff53c7f8e in start_thread (arg=0x7fffda639700) at pthread_create.c:308 #25 0x00007ffff48db2ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #26 0x0000000000000000 in ?? ()
It segfaults in the condition check: "if (!FT_IS_SCALABLE(freetype->face))" and freetype->face is 0 there.