static void _gst_clock_id_free (GstClockID id) { g_return_if_fail (id != NULL); GST_CAT_DEBUG (GST_CAT_CLOCK, "freed entry %p", id); #ifndef GST_DISABLE_TRACE gst_alloc_trace_free (_gst_clock_entry_trace, id); #endif g_slice_free (GstClockEntry, id); }
static void _gst_clock_id_free (GstClockID id) { GstClockEntry *entry; g_return_if_fail (id != NULL); GST_CAT_DEBUG (GST_CAT_CLOCK, "freed entry %p", id); entry = (GstClockEntry *) id; if (entry->destroy_data) entry->destroy_data (entry->user_data); #ifndef GST_DISABLE_TRACE gst_alloc_trace_free (_gst_clock_entry_trace, id); #endif g_slice_free (GstClockEntry, id); }
/* finalize is called when the object has to free its resources */ static void gst_object_finalize (GObject * object) { GstObject *gstobject = GST_OBJECT (object); GST_CAT_LOG_OBJECT (GST_CAT_REFCOUNTING, object, "finalize"); g_signal_handlers_destroy (object); g_free (gstobject->name); g_mutex_free (gstobject->lock); #ifndef GST_DISABLE_TRACE gst_alloc_trace_free (_gst_object_trace, object); #endif parent_class->finalize (object); }
static void gst_mini_object_free (GstMiniObject * mini_object) { GstMiniObjectClass *mo_class; /* At this point, the refcount of the object is 0. We increase the refcount * here because if a subclass recycles the object and gives out a new * reference we don't want to free the instance anymore. */ gst_mini_object_ref (mini_object); mo_class = GST_MINI_OBJECT_GET_CLASS (mini_object); mo_class->finalize (mini_object); /* decrement the refcount again, if the subclass recycled the object we don't * want to free the instance anymore */ if (G_LIKELY (g_atomic_int_dec_and_test (&mini_object->refcount))) { #ifndef GST_DISABLE_TRACE gst_alloc_trace_free (_gst_mini_object_trace, mini_object); #endif g_type_free_instance ((GTypeInstance *) mini_object); } }