All pastes #800306 Raw Edit

Etwas

public text v1 · immutable
#800306 ·published 2007-11-28 09:59 UTC
rendered paste body
Index: gst/gstminiobject.c
===================================================================
RCS file: /cvs/gstreamer/gstreamer/gst/gstminiobject.c,v
retrieving revision 1.31
diff -u -p -a -u -p -r1.31 gstminiobject.c
--- gst/gstminiobject.c	27 Jun 2007 11:43:04 -0000	1.31
+++ gst/gstminiobject.c	28 Nov 2007 09:42:07 -0000
@@ -183,9 +183,14 @@ gst_mini_object_copy (const GstMiniObjec
 {
   GstMiniObjectClass *mo_class;
 
+  g_return_val_if_fail (GST_IS_MINI_OBJECT (mini_object), NULL);
+
   mo_class = GST_MINI_OBJECT_GET_CLASS (mini_object);
 
-  return mo_class->copy (mini_object);
+  if (mo_class->copy)
+    return mo_class->copy (mini_object);
+  else
+    return NULL;
 }
 
 /**
@@ -204,6 +209,8 @@ gst_mini_object_copy (const GstMiniObjec
 gboolean
 gst_mini_object_is_writable (const GstMiniObject * mini_object)
 {
+  g_return_val_if_fail (GST_IS_MINI_OBJECT (mini_object), FALSE);
+
   return (GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object) == 1) &&
       ((mini_object->flags & GST_MINI_OBJECT_FLAG_READONLY) == 0);
 }
@@ -225,6 +232,8 @@ gst_mini_object_make_writable (GstMiniOb
 {
   GstMiniObject *ret;
 
+  g_return_val_if_fail (GST_IS_MINI_OBJECT (mini_object), NULL);
+
   if (gst_mini_object_is_writable (mini_object)) {
     ret = (GstMiniObject *) mini_object;
   } else {
@@ -253,14 +262,12 @@ gst_mini_object_make_writable (GstMiniOb
 GstMiniObject *
 gst_mini_object_ref (GstMiniObject * mini_object)
 {
-  g_return_val_if_fail (mini_object != NULL, NULL);
+  g_return_val_if_fail (GST_IS_MINI_OBJECT (mini_object), NULL);
   /* we cannot assert that the refcount > 0 since a bufferalloc
    * function might resurect an object
    g_return_val_if_fail (mini_object->refcount > 0, NULL);
    */
 #ifdef DEBUG_REFCOUNT
-  g_return_val_if_fail (GST_IS_MINI_OBJECT (mini_object), NULL);
-
   GST_CAT_LOG (GST_CAT_REFCOUNTING, "%p ref %d->%d",
       mini_object,
       GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object),
@@ -278,7 +285,8 @@ gst_mini_object_free (GstMiniObject * mi
   GstMiniObjectClass *mo_class;
 
   mo_class = GST_MINI_OBJECT_GET_CLASS (mini_object);
-  mo_class->finalize (mini_object);
+  if (mo_class->finalize)
+    mo_class->finalize (mini_object);
 
   /* if the refcount is still 0 we can really free the
    * object, else the finalize method recycled the object */
@@ -300,11 +308,10 @@ gst_mini_object_free (GstMiniObject * mi
 void
 gst_mini_object_unref (GstMiniObject * mini_object)
 {
-  g_return_if_fail (mini_object != NULL);
+  g_return_if_fail (GST_IS_MINI_OBJECT (mini_object));
   g_return_if_fail (mini_object->refcount > 0);
 
 #ifdef DEBUG_REFCOUNT
-  g_return_if_fail (GST_IS_MINI_OBJECT (mini_object));
 
   GST_CAT_LOG (GST_CAT_REFCOUNTING, "%p unref %d->%d",
       mini_object,
@@ -331,6 +338,10 @@ gst_mini_object_replace (GstMiniObject *
 {
   GstMiniObject *olddata_val;
 
+  g_return_if_fail (olddata != NULL);
+  g_return_if_fail (*olddata == NULL || GST_IS_MINI_OBJECT (*olddata));
+  g_return_if_fail (newdata == NULL || GST_IS_MINI_OBJECT (newdata));
+
 #ifdef DEBUG_REFCOUNT
   GST_CAT_LOG (GST_CAT_REFCOUNTING, "replace %p (%d) with %p (%d)",
       *olddata, *olddata ? (*olddata)->refcount : 0,
@@ -505,14 +516,14 @@ param_mini_object_validate (GParamSpec *
 {
   GstParamSpecMiniObject *ospec = GST_PARAM_SPEC_MINI_OBJECT (pspec);
   GstMiniObject *mini_object = value->data[0].v_pointer;
-  guint changed = 0;
+  gboolean changed = FALSE;
 
   if (mini_object
       && !g_value_type_compatible (G_OBJECT_TYPE (mini_object),
           G_PARAM_SPEC_VALUE_TYPE (ospec))) {
     gst_mini_object_unref (mini_object);
     value->data[0].v_pointer = NULL;
-    changed++;
+    changed = TRUE;
   }
 
   return changed;
@@ -546,6 +557,7 @@ gst_param_spec_mini_object_get_type (voi
       param_mini_object_validate,       /* value_validate */
       param_mini_object_values_cmp,     /* values_cmp */
     };
+    /* FIXME 0.11: Should really be GstParamSpecMiniObject */
     type = g_param_type_register_static ("GParamSpecMiniObject", &pspec_info);
   }
 
@@ -578,3 +590,4 @@ gst_param_spec_mini_object (const char *