diff options
author | Benjamin Otte <otte@redhat.com> | 2021-10-20 20:07:37 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2021-10-20 20:31:33 +0200 |
commit | ea14e94eaf96079cb18cce6bb39a74b0933771f0 (patch) | |
tree | 5652f8a625ac247c474c1984931d42c434f457ec | |
parent | 2601c39cb2cd985f316fb03439a3a30325c3ea64 (diff) | |
download | gtk+-ea14e94eaf96079cb18cce6bb39a74b0933771f0.tar.gz |
drawcontext: Guard begin/end_frame() against non-surface contexts
This can happen now with gdk_display_create_gl_context().
-rw-r--r-- | gdk/gdkdrawcontext.c | 7 |
1 files changed, 6 insertions, 1 deletions
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; |