From: Benjamin Otte Date: Wed, 20 Oct 2021 18:07:37 +0000 (+0200) Subject: drawcontext: Guard begin/end_frame() against non-surface contexts X-Git-Tag: archive/raspbian/4.6.5+ds-1+rpi1~1^2~19^2~5^2~220^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ea14e94eaf96079cb18cce6bb39a74b0933771f0;p=gtk4.git drawcontext: Guard begin/end_frame() against non-surface contexts This can happen now with gdk_display_create_gl_context(). --- diff --git a/gdk/gdkdrawcontext.c b/gdk/gdkdrawcontext.c index b51e1139dd..8ab405e25b 100644 --- a/gdk/gdkdrawcontext.c +++ b/gdk/gdkdrawcontext.c @@ -276,7 +276,8 @@ gdk_draw_context_get_surface (GdkDrawContext *context) /** * gdk_draw_context_begin_frame: - * @context: the `GdkDrawContext` used to draw the frame + * @context: the `GdkDrawContext` used to draw the frame. The context must + * have a surface. * @region: minimum region that should be drawn * * Indicates that you are beginning the process of redrawing @region @@ -308,7 +309,10 @@ void gdk_draw_context_begin_frame (GdkDrawContext *context, const cairo_region_t *region) { + GdkDrawContextPrivate *priv = gdk_draw_context_get_instance_private (context); + g_return_if_fail (GDK_IS_DRAW_CONTEXT (context)); + g_return_if_fail (priv->surface != NULL); g_return_if_fail (region != NULL); gdk_draw_context_begin_frame_full (context, FALSE, region); @@ -411,6 +415,7 @@ gdk_draw_context_end_frame (GdkDrawContext *context) GdkDrawContextPrivate *priv = gdk_draw_context_get_instance_private (context); g_return_if_fail (GDK_IS_DRAW_CONTEXT (context)); + g_return_if_fail (priv->surface != NULL); if (GDK_SURFACE_DESTROYED (priv->surface)) return;