The leak detector we use currently is not enough to detect some kind of leak in DisplayChannel so manully test. These tests are enabled only when --enable-extra-checks is passed to configure. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- configure.ac | 3 +++ server/display-channel.c | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+) Changes since v1: - use full names for variable; - better indentation and comment in configure.ac. diff --git a/configure.ac b/configure.ac index e1e74862..a840eebd 100644 --- a/configure.ac +++ b/configure.ac @@ -247,6 +247,9 @@ AC_ARG_ENABLE([extra-checks], AS_HELP_STRING([--enable-extra-checks=@<:@yes/no@:>@], [Enable expensive checks @<:@default=no@:>@])) AM_CONDITIONAL(ENABLE_EXTRA_CHECKS, test "$enable_extra_checks" = "yes") +AC_DEFINE_UNQUOTED([ENABLE_EXTRA_CHECKS], + [$(test "x$enable_extra_checks" = xyes && echo 1 || echo 0)], + [Define to 1 to enable extra checks on code otherwise define to 0]) dnl =========================================================================== dnl check compiler flags diff --git a/server/display-channel.c b/server/display-channel.c index 83ac692f..792fbd25 100644 --- a/server/display-channel.c +++ b/server/display-channel.c @@ -80,6 +80,30 @@ display_channel_finalize(GObject *object) display_channel_destroy_surfaces(self); image_cache_reset(&self->priv->image_cache); + + if (ENABLE_EXTRA_CHECKS) { + unsigned int count; + _Drawable *drawable; + Stream *stream; + + count = 0; + for (drawable = self->priv->free_drawables; drawable; drawable = drawable->u.next) { + ++count; + } + spice_assert(count == NUM_DRAWABLES); + + count = 0; + for (stream = self->priv->free_streams; stream; stream = stream->next) { + ++count; + } + spice_assert(count == NUM_STREAMS); + spice_assert(ring_is_empty(&self->priv->streams)); + + for (count = 0; count < NUM_SURFACES; ++count) { + spice_assert(self->priv->surfaces[count].context.canvas == NULL); + } + } + monitors_config_unref(self->priv->monitors_config); g_array_unref(self->priv->video_codecs); g_free(self->priv); -- 2.13.5 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel