From: Christian Hergert Date: Mon, 16 May 2022 17:50:07 +0000 (-0700) Subject: gsk/gl: use critical instead of assert in dispose X-Git-Tag: archive/raspbian/4.8.3+ds-2+rpi1~3^2~20^2~4^2~183^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=654d74bfb81fc768066181f057aaac0cf04d71ab;p=gtk4.git 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 --- 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); }