GNOME Bugzilla – Bug 650317
crash in Alt+Tab due to bad pick
Last modified: 2013-08-18 12:11:31 UTC
an attempt to fix https://bugzilla.redhat.com/show_bug.cgi?id=697964 I haven't yet verified that it does fix that bug, but the existing code seems wrong anyway, since clutter_stage_get_actor_at_pos() does not actually force a relayout like it claims. I don't know why the pick fails.
Created attachment 187916 [details] [review] altTab: remove erroneous pick that seems to cause errors/crashes
It's worth noting that the original workaround doesn't have any useful information: commit 6461db9df6b628b0326db9ff016ae984660613da Author: Adel Gadllah <adel.gadllah@gmail.com> Date: Fri Mar 26 18:12:01 2010 +0100 AppSwitcher: Make sure we always get the correct icon position Call stage.get_actor_at_pos before calling icon.get_transformed_position. Adel? Do you remember why this was added?
From a quick look at the code I agree that _get_actor_at_pos() won't do a relayout. So, while the erroneous pick may *provoke* a crash, this is clearly a reference counting problem somewhere. Look at the stack in https://bugzilla.redhat.com/attachment.cgi?id=493263
+ Trace 227148
The 0xdecafbad value is a sentinel that Clutter uses for finalized actors.
Review of attachment 187916 [details] [review]: Given the above analysis, fine to remove this. But let's clone this bug for the crash.
(In reply to comment #3) > The 0xdecafbad value is a sentinel that Clutter uses for finalized actors. oh, hm, I was thinking it was getting a bogus value from gl and thus looking up an invalid index in the array, but getting a legitimate value corresponding to a finalized actor seems more likely (and probably means clutter is reusing the pick buffer when it shouldn't). (In reply to comment #4) > let's clone this bug for the crash. eh, we can just keep this one
(In reply to comment #2) > It's worth noting that the original workaround doesn't have any useful > information: > > commit 6461db9df6b628b0326db9ff016ae984660613da > Author: Adel Gadllah <adel.gadllah@gmail.com> > Date: Fri Mar 26 18:12:01 2010 +0100 > > AppSwitcher: Make sure we always get the correct icon position > > Call stage.get_actor_at_pos before calling icon.get_transformed_position. > > > Adel? Do you remember why this was added? IIRC it fixed a bug where the icons ended up being scrolled out of sight due to the getting wrong coordinates from get_transformed_position, fe08edbe2bf88aa43b643a added a similar fix later so it should be fine now (cannot reproduce the original bug with it removed).
Is this still valid?
(In reply to comment #7) > Is this still valid? No we use a St.Scrollview now.