[gtk/wip/chergert/fix-4625] gsk/gl: use critical instead of assert in dispose
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/chergert/fix-4625] gsk/gl: use critical instead of assert in dispose
- Date: Mon, 16 May 2022 17:54:27 +0000 (UTC)
commit 654d74bfb81fc768066181f057aaac0cf04d71ab
Author: Christian Hergert <chergert redhat com>
Date: Mon May 16 10:50:07 2022 -0700
gsk/gl: use critical instead of assert in dispose
Instead of asserting only in debug builds (which are generally not
shipped in distributions) we should deliver a critical log-level message
so that these can be found sooner when not developing with jhbuild,
Flatpak, etc.
Also assert that we've setup the state correctly when realizing the
GskGLRenderer object.
Fixes #4625
gsk/gl/gskglrenderer.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c
index afb34cd2f1..67cc924cda 100644
--- a/gsk/gl/gskglrenderer.c
+++ b/gsk/gl/gskglrenderer.c
@@ -158,6 +158,10 @@ failure:
gdk_profiler_end_mark (start_time, "realize GskGLRenderer", NULL);
+ /* Assert either all or no state was set */
+ g_assert ((ret && self->driver != NULL && self->context != NULL && self->command_queue != NULL) ||
+ (!ret && self->driver == NULL && self->context == NULL && self->command_queue == NULL));
+
return ret;
}
@@ -403,11 +407,11 @@ gsk_gl_renderer_render_texture (GskRenderer *renderer,
static void
gsk_gl_renderer_dispose (GObject *object)
{
-#ifdef G_ENABLE_DEBUG
GskGLRenderer *self = (GskGLRenderer *)object;
- g_assert (self->driver == NULL);
-#endif
+ if (self->driver != NULL)
+ g_critical ("Attempt to dispose %s without calling gsk_renderer_unrealize()",
+ G_OBJECT_TYPE_NAME (self));
G_OBJECT_CLASS (gsk_gl_renderer_parent_class)->dispose (object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]