--===============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
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==--