GNOME Bugzilla – Bug 774805
animations: Guard against empty animations
Last modified: 2017-01-04 16:28:55 UTC
Not exactly sure how we get there (missing pixbuf loader? screwed-up custom theming?), but apparently this happens to some people: https://bugzilla.redhat.com/show_bug.cgi?id=1350303
Created attachment 340462 [details] [review] animations: Guard against empty animations Our animation code not only relies on the animation being loaded (which we handle), but also on having at least one frame - otherwise the computation of the next frame index will turn up NaN through division by zero. Guard against this case by treating empty animations as not loaded.
Review of attachment 340462 [details] [review]: yeah, definitely looks good. maybe StTextureCache should warn when this happens to make the problem easier to diagnose too?
Created attachment 340536 [details] [review] texture-cache: Warn when loading sliced image fails (In reply to Rui Matos from comment #2) > Maybe StTextureCache should warn when this happens to make the problem > easier to diagnose too? Makes sense to me. Sliced images are loaded into a group actor with one child actor per slice. In case loading the image fails, we currently quietly return the empty group actor, which makes diagnosing problems unnecessarily hard - just be a bit more verbose on failure.
Review of attachment 340536 [details] [review]: looks good
Attachment 340462 [details] pushed as e5101eb - animations: Guard against empty animations Attachment 340536 [details] pushed as 1de1fd4 - texture-cache: Warn when loading sliced image fails
Is this going to get backported to 3.22? I just had a hung gdm-3.22.1 login again, gnome-shell is at 3.22.2. Suspend + resume fortunately released the deadlock on second attempt, so I didn't have to kill off my whole desktop state.
(In reply to Leho Kraav (@lkraav :macmaN) from comment #6) > Is this going to get backported to 3.22? Sure, I just pushed the patches to the gnome-3-22 branch, so they'll get included in the next release.
Just so I can find this later, the log message is "can't convert this._frame to an integer".