summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2020-04-02 19:30:59 +0100
committerRobert Mader <robert.mader@posteo.de>2020-04-03 13:49:34 +0200
commite339a57ddf87de42e8171a935a7617cd2acf7ef6 (patch)
tree9c0ea97c23c871b66559c2407d71c9ef870f68b6
parente3b2b90c72f72f9bf4a99add15829bf275fbe1a7 (diff)
downloadmutter-e339a57ddf87de42e8171a935a7617cd2acf7ef6.tar.gz
cogl: Defend against empty or unallocated framebuffers
It isn't immediately obvious that this is impossible, because there's some "action at a distance" going on with framebuffers that have their size set lazily, after their textures get allocated; so let's make this a critical warning rather than crashing. In particular, this works around a crash when gnome-shell tries to blur a background that hasn't yet had any space allocated for it - which it seems is really an actor layout bug, but more robustness seems good to have. Workaround for <https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2538>. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1172 Signed-off-by: Simon McVittie <smcv@debian.org> (cherry picked from commit c389aadff933c2d4c7fbe4f2b0864832dec40461)
-rw-r--r--cogl/cogl/driver/gl/cogl-framebuffer-gl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/cogl/cogl/driver/gl/cogl-framebuffer-gl.c b/cogl/cogl/driver/gl/cogl-framebuffer-gl.c
index 2848d7183..e4d215ea2 100644
--- a/cogl/cogl/driver/gl/cogl-framebuffer-gl.c
+++ b/cogl/cogl/driver/gl/cogl-framebuffer-gl.c
@@ -132,8 +132,8 @@ _cogl_framebuffer_gl_flush_viewport_state (CoglFramebuffer *framebuffer)
{
float gl_viewport_y;
- g_assert (framebuffer->viewport_width >=0 &&
- framebuffer->viewport_height >=0);
+ g_return_if_fail (framebuffer->viewport_width >= 0);
+ g_return_if_fail (framebuffer->viewport_height >= 0);
/* Convert the Cogl viewport y offset to an OpenGL viewport y offset
* NB: OpenGL defines its window and viewport origins to be bottom