From 79321deb2764314dd05f906f71ac3dfd106a679d Mon Sep 17 00:00:00 2001 From: Doug Nazar Date: Wed, 28 May 2025 09:08:05 -0400 Subject: [PATCH] validate: cleanup several items on shutdown Part-of: --- .../validate/gst/validate/flow/gstvalidateflow.c | 6 ++++++ .../validate/gst/validate/gst-validate-internal.h | 2 ++ .../validate/gst/validate/gst-validate-report.c | 11 +++++++++++ .../gst-devtools/validate/gst/validate/validate.c | 4 ++++ 4 files changed, 23 insertions(+) diff --git a/subprojects/gst-devtools/validate/gst/validate/flow/gstvalidateflow.c b/subprojects/gst-devtools/validate/gst/validate/flow/gstvalidateflow.c index 92bed68701..24bbe68fe4 100644 --- a/subprojects/gst-devtools/validate/gst/validate/flow/gstvalidateflow.c +++ b/subprojects/gst-devtools/validate/gst/validate/flow/gstvalidateflow.c @@ -709,3 +709,9 @@ gst_validate_flow_init (void) return TRUE; } + +void +_priv_validate_flow_deinit (void) +{ + g_clear_list (&all_overrides, gst_object_unref); +} diff --git a/subprojects/gst-devtools/validate/gst/validate/gst-validate-internal.h b/subprojects/gst-devtools/validate/gst/validate/gst-validate-internal.h index f3601f7390..91206a8e5f 100644 --- a/subprojects/gst-devtools/validate/gst/validate/gst-validate-internal.h +++ b/subprojects/gst-devtools/validate/gst/validate/gst-validate-internal.h @@ -79,6 +79,8 @@ gst_validate_pipeline_monitor_new_full (GstPipeline * pipeline, G_GNUC_INTERNAL gboolean gst_validate_extra_checks_init (void); G_GNUC_INTERNAL gboolean gst_validate_flow_init (void); +G_GNUC_INTERNAL void _priv_validate_flow_deinit (void); + G_GNUC_INTERNAL gboolean is_tty (void); /* MediaDescriptor structures */ diff --git a/subprojects/gst-devtools/validate/gst/validate/gst-validate-report.c b/subprojects/gst-devtools/validate/gst/validate/gst-validate-report.c index e3757f112a..56d337d28a 100644 --- a/subprojects/gst-devtools/validate/gst/validate/gst-validate-report.c +++ b/subprojects/gst-devtools/validate/gst/validate/gst-validate-report.c @@ -251,6 +251,7 @@ gst_validate_issue_new_full (GstValidateIssueId issue_id, const gchar * summary, } issue = g_new (GstValidateIssue, 1); + issue->refcount = 1; issue->issue_id = issue_id; issue->summary = g_strdup (summary); issue->description = g_strdup (description); @@ -288,6 +289,7 @@ gst_validate_issue_new (GstValidateIssueId issue_id, const gchar * summary, } issue = g_new (GstValidateIssue, 1); + issue->refcount = 1; issue->issue_id = issue_id; issue->summary = g_strdup (summary); issue->description = g_strdup (description); @@ -735,6 +737,15 @@ gst_validate_report_init (void) void gst_validate_report_deinit (void) { +#ifndef GST_DISABLE_GST_DEBUG + g_clear_pointer (&newline_regex, g_regex_unref); +#endif + + if (_gst_validate_issues) + g_hash_table_destroy (g_steal_pointer (&_gst_validate_issues)); + + _gst_validate_report_start_time = 0; + if (server_ostream) { g_output_stream_close (server_ostream, NULL, NULL); server_ostream = NULL; diff --git a/subprojects/gst-devtools/validate/gst/validate/validate.c b/subprojects/gst-devtools/validate/gst/validate/validate.c index 106f234c68..9e4b9d96a0 100644 --- a/subprojects/gst-devtools/validate/gst/validate/validate.c +++ b/subprojects/gst-devtools/validate/gst/validate/validate.c @@ -530,6 +530,10 @@ gst_validate_deinit (void) testfile_structs = NULL; g_clear_pointer (&global_testfile, g_free); + if (validate_initialized) + g_rec_mutex_clear (&init_lock); + + _priv_validate_flow_deinit (); _priv_validate_override_registry_deinit (); validate_initialized = FALSE; gst_validate_report_deinit ();