More cleanups and refcount fixage
authorWim Taymans <wim.taymans@gmail.com>
Fri, 17 Jan 2003 18:59:44 +0000 (18:59 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Fri, 17 Jan 2003 18:59:44 +0000 (18:59 +0000)
Original commit message from CVS:
More cleanups and refcount fixage

gst/gstpipeline.c
gst/gstscheduler.c
gst/gstthread.c

index 8da8d6a..b6a7244 100644 (file)
@@ -123,10 +123,7 @@ gst_pipeline_dispose (GObject *object)
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
 
-  if (GST_ELEMENT_SCHED (pipeline)) {
-    gst_object_unref (GST_OBJECT (GST_ELEMENT_SCHED (pipeline)));
-    GST_ELEMENT_SCHED (pipeline) = NULL;
-  }
+  gst_object_swap ((GstObject **)&GST_ELEMENT_SCHED (pipeline), NULL);
 }
 
 /**
index e160165..daca1a6 100644 (file)
@@ -807,7 +807,7 @@ gst_scheduler_factory_new (const gchar *name, const gchar *longdesc, GType type)
 {
   GstSchedulerFactory *factory;
 
-  g_return_val_if_fail(name != NULL, NULL);
+  g_return_val_if_fail (name != NULL, NULL);
 
   factory = gst_scheduler_factory_find (name);
 
@@ -851,7 +851,7 @@ gst_scheduler_factory_find (const gchar *name)
 {
   GstPluginFeature *feature;
 
-  g_return_val_if_fail(name != NULL, NULL);
+  g_return_val_if_fail (name != NULL, NULL);
 
   GST_DEBUG (0,"gstscheduler: find \"%s\"", name);
 
@@ -880,7 +880,8 @@ gst_scheduler_factory_create (GstSchedulerFactory *factory, GstElement *parent)
   GstScheduler *new = NULL;
 
   g_return_val_if_fail (factory != NULL, NULL);
-  g_return_val_if_fail (parent != NULL, NULL);
+  g_return_val_if_fail (GST_IS_ELEMENT (parent), NULL);
+  g_return_val_if_fail (GST_ELEMENT_SCHED (parent) == NULL, NULL);
 
   if (gst_plugin_feature_ensure_loaded (GST_PLUGIN_FEATURE (factory))) {
     g_return_val_if_fail (factory->type != 0, NULL);
index c8b4e00..fb6ab5f 100644 (file)
@@ -209,11 +209,9 @@ gst_thread_dispose (GObject *object)
   g_cond_free (thread->cond_t);
   g_cond_free (thread->cond_m);
 
-  G_OBJECT_CLASS (parent_class)->dispose (object);
+  gst_object_swap ((GstObject **)&GST_ELEMENT_SCHED (thread), NULL);
 
-  if (GST_ELEMENT_SCHED (thread)) {
-    gst_object_unref (GST_OBJECT (GST_ELEMENT_SCHED (thread)));
-  }
+  G_OBJECT_CLASS (parent_class)->dispose (object);
 }
 
 /**