diff options
author | Matthew Waters <matthew@centricular.com> | 2018-02-05 17:41:25 +1100 |
---|---|---|
committer | Matthew Waters <matthew@centricular.com> | 2018-02-05 17:44:33 +1100 |
commit | dc452aa799d80d5f28720e051ac4160a9cf58140 (patch) | |
tree | bf610543cc74b9bdd43ab9d23b0148573b36fb88 | |
parent | 18a62b144d7b78302f255199ca26427180579fe9 (diff) | |
download | gstreamer-plugins-bad-dc452aa799d80d5f28720e051ac4160a9cf58140.tar.gz |
dtls: don't leak the system clock
Obtain and release it as needed.
-rw-r--r-- | ext/dtls/gstdtlsconnection.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/ext/dtls/gstdtlsconnection.c b/ext/dtls/gstdtlsconnection.c index 728f5a760..77ed95e5c 100644 --- a/ext/dtls/gstdtlsconnection.c +++ b/ext/dtls/gstdtlsconnection.c @@ -76,7 +76,6 @@ static GParamSpec *properties[NUM_PROPERTIES]; static int connection_ex_index; -static GstClock *system_clock; static void handle_timeout (gpointer data, gpointer user_data); struct _GstDtlsConnectionPrivate @@ -159,8 +158,6 @@ gst_dtls_connection_class_init (GstDtlsConnectionClass * klass) _gst_dtls_init_openssl (); gobject_class->finalize = gst_dtls_connection_finalize; - - system_clock = gst_system_clock_obtain (); } static void @@ -388,6 +385,7 @@ gst_dtls_connection_check_timeout_locked (GstDtlsConnection * self) GST_DEBUG_OBJECT (self, "waiting for %" G_GINT64_FORMAT " usec", wait_time); if (wait_time) { + GstClock *system_clock = gst_system_clock_obtain (); GstClockID clock_id; #ifndef G_DISABLE_ASSERT GstClockReturn clock_return; @@ -405,6 +403,7 @@ gst_dtls_connection_check_timeout_locked (GstDtlsConnection * self) g_object_ref (self), (GDestroyNotify) g_object_unref); g_assert (clock_return == GST_CLOCK_OK); gst_clock_id_unref (clock_id); + gst_object_unref (system_clock); } else { if (self->priv->is_alive && !self->priv->timeout_pending) { self->priv->timeout_pending = TRUE; |