stack trace for the crash

Thiago Macieira thiago at macieira.org
Fri Jan 22 16:28:38 PST 2016


On Friday 22 January 2016 09:31:38 Dirk Hohndel wrote:
> #11 0x00007fffe40607f7 in QQuickGridLayoutBase::geometryChanged
> (this=this at entry=0x429ca50, newGeometry=..., oldGeometry=...) at
> qquicklinearlayout.cpp:500 

> #12 0x00007ffff529a3a4 in QQuickItem::setImplicitSize
> (this=this at entry=0x429ca50, w=<optimized out>, h=h at entry=476) at
> items/qquickitem.cpp:6350 

> #13 0x00007fffe406050d in QQuickGridLayoutBase::invalidate (this=0x429ca50,
> childItem=0x4071360) at qquicklinearlayout.cpp:431 

> #14 0x00007fffe405ff7c in QQuickGridLayoutBase::rearrange (this=0x429ca50,
> size=...) at qquicklinearlayout.cpp:572 

> #15 0x00007fffe40607f7 in QQuickGridLayoutBase::geometryChanged
> (this=this at entry=0x429ca50, newGeometry=..., oldGeometry=...) at
> qquicklinearlayout.cpp:500

Indeed, this looks like a qtquickcontrols bug. Whether this is caused by the 
Plasma Components or not, I don't know, but given that the repeating frames 
are entirely in Qt code, I don't think it is.

QQuickItem::setImplicitSize calls the geometryChanged virtual (overridden by 
QQuickGridLayoutBase), which calls rearrange(), which loops over a list of 
items to invalidate:

    foreach (QQuickItem *invalid, d->m_invalidateAfterRearrange)
        invalidate(invalid);

When invalidate() invalidates a child item, it may call setImplicitSize again.

The code in 5.6 has changed a little, but the principles are still the same.

Jan-Arve, JP, any hint you could offer? How is this supposed to work?

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358



More information about the subsurface mailing list