--===============2804912321442816712== Content-Type: multipart/alternative; boundary="===============1058728662557379308==" --===============1058728662557379308== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/108151/ ----------------------------------------------------------- Review request for kwin and Martin Gr=C3=A4=C3=9Flin. Description ------- I recently started to run into random crashes on the heap and slightly star= ted to fear to have broken sth. on activities... whatever. Turned out* that moving BE::Faded to AnimationEffect and for the very first= time actually using "animationEnded" to chain animations (fade out -> fade= in) would (actually obviously) alter the m_animations list what unfortunat= ely turns our nice little iterators into random junk. So this patch tracks list manipulations (in this case during the iteration = calling animationEnded, being the natural candidate) and when they happen, = re-validates the iterators (the map traversion is required due to the inter= nals of QMap/QHash; the list could instead also be accessed by entry->first= .at(animationCounter) instead; not sure about performance impact but it wou= ld have made the patch much larger ;-) * I actually figured it because resizing on fullscreen changes always worke= d like crap because the window gets to resizes in a row (once for the decor= ation being removed and then the actual resize to the FS geometry) what got= me multiplicative traslation/scaling. Chaining this made the crashes prett= y reproducible but the result is pretty cool =3D) Diffs ----- kwin/libkwineffects/kwinanimationeffect.cpp e0a6694 = Diff: http://git.reviewboard.kde.org/r/108151/diff/ Testing ------- hehe - i un/fullscreened mplayer about a hundred times the last few minutes. That crashed nearly *each* time before the patch. Thanks, Thomas L=C3=BCbking --===============1058728662557379308== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable
This is an automatically generated e-mail. To reply, visit: http://git.revie= wboard.kde.org/r/108151/

Review request for kwin and Martin Gr=C3=A4=C3=9Flin.
By Thomas L=C3=BCbking.

Descripti= on

I recently started to run into random crashes on the heap an=
d slightly started to fear to have broken sth. on activities...
whatever.
Turned out* that moving BE::Faded to AnimationEffect and for the very first=
 time actually using "animationEnded" to chain animations (fade o=
ut -> fade in) would (actually obviously) alter the m_animations list wh=
at unfortunately turns our nice little iterators into random junk.

So this patch tracks list manipulations (in this case during the iteration =
calling animationEnded, being the natural candidate) and when they happen, =
re-validates the iterators (the map traversion is required due to the inter=
nals of QMap/QHash; the list could instead also be accessed by entry->fi=
rst.at(animationCounter) instead; not sure about performance impact but it =
would have made the patch much larger ;-)

* I actually figured it because resizing on fullscreen changes always worke=
d like crap because the window gets to resizes in a row (once for the decor=
ation being removed and then the actual resize to the FS geometry) what got=
 me multiplicative traslation/scaling. Chaining this made the crashes prett=
y reproducible but the result is pretty cool =3D)

Testing <= /h1>
hehe - i un/fullscreened mplayer about a hundred times the l=
ast few minutes.
That crashed nearly *each* time before the patch.

Diffs=

  • kwin/libkwineffects/kwinanimationeffect.cpp View Diff

--===============1058728662557379308==-- --===============2804912321442816712== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ kwin mailing list kwin@kde.org https://mail.kde.org/mailman/listinfo/kwin --===============2804912321442816712==--