buffer: Use an inline function instead of a macro for gst_buffer_replace()
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 13 Oct 2011 08:19:34 +0000 (10:19 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 13 Oct 2011 08:19:34 +0000 (10:19 +0200)
This gives us type checks by the compiler and more useful compiler errors.

gst/gstbuffer.h

index 070c7d8..d0893a2 100644 (file)
@@ -460,12 +460,15 @@ GstBuffer*      gst_buffer_make_metadata_writable (GstBuffer *buf);
  *
  * Either @nbuf or the #GstBuffer pointed to by @obuf may be NULL.
  */
-#define         gst_buffer_replace(obuf,nbuf) \
-G_STMT_START {                                                                \
-  GstBuffer **___obufaddr = (GstBuffer **)(obuf);         \
-  gst_mini_object_replace ((GstMiniObject **)___obufaddr, \
-      GST_MINI_OBJECT_CAST (nbuf));                       \
-} G_STMT_END
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void gst_buffer_replace (GstBuffer **obuf, GstBuffer *nbuf);
+#endif
+
+static inline void
+gst_buffer_replace (GstBuffer **obuf, GstBuffer *nbuf)
+{
+  gst_mini_object_replace ((GstMiniObject **) obuf, (GstMiniObject *) nbuf);
+}
 
 GstCaps*        gst_buffer_get_caps             (GstBuffer *buffer);
 void            gst_buffer_set_caps             (GstBuffer *buffer, GstCaps *caps);