pbutils: Update for g_type_class_add_private() deprecation in recent GLib
authorTim-Philipp Müller <tim@centricular.com>
Sat, 23 Jun 2018 19:33:16 +0000 (21:33 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 23 Jun 2018 20:08:16 +0000 (22:08 +0200)
https://gitlab.gnome.org/GNOME/glib/merge_requests/7

gst-libs/gst/pbutils/gstaudiovisualizer.c
gst-libs/gst/pbutils/gstdiscoverer.c

index a185f25..9b1cd61 100644 (file)
@@ -60,6 +60,7 @@ enum
 };
 
 static GstBaseTransformClass *parent_class = NULL;
+static gint private_offset = 0;
 
 static void gst_audio_visualizer_class_init (GstAudioVisualizerClass * klass);
 static void gst_audio_visualizer_init (GstAudioVisualizer * scope,
@@ -96,9 +97,6 @@ static gboolean gst_audio_visualizer_do_bufferpool (GstAudioVisualizer * scope,
 static gboolean
 default_decide_allocation (GstAudioVisualizer * scope, GstQuery * query);
 
-#define GST_AUDIO_VISUALIZER_GET_PRIVATE(obj)  \
-    (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_AUDIO_VISUALIZER, GstAudioVisualizerPrivate))
-
 struct _GstAudioVisualizerPrivate
 {
   gboolean negotiated;
@@ -520,18 +518,29 @@ gst_audio_visualizer_get_type (void)
     /* TODO: rename when exporting it as a library */
     _type = g_type_register_static (GST_TYPE_ELEMENT,
         "GstAudioVisualizer", &audio_visualizer_info, G_TYPE_FLAG_ABSTRACT);
+
+    private_offset =
+        g_type_add_instance_private (_type, sizeof (GstAudioVisualizerPrivate));
+
     g_once_init_leave (&audio_visualizer_type, _type);
   }
   return (GType) audio_visualizer_type;
 }
 
+static inline GstAudioVisualizerPrivate *
+gst_audio_visualizer_get_instance_private (GstAudioVisualizer * self)
+{
+  return (G_STRUCT_MEMBER_P (self, private_offset));
+}
+
 static void
 gst_audio_visualizer_class_init (GstAudioVisualizerClass * klass)
 {
   GObjectClass *gobject_class = (GObjectClass *) klass;
   GstElementClass *element_class = (GstElementClass *) klass;
 
-  g_type_class_add_private (klass, sizeof (GstAudioVisualizerPrivate));
+  if (private_offset != 0)
+    g_type_class_adjust_private_offset (klass, &private_offset);
 
   parent_class = g_type_class_peek_parent (klass);
 
@@ -566,7 +575,7 @@ gst_audio_visualizer_init (GstAudioVisualizer * scope,
 {
   GstPadTemplate *pad_template;
 
-  scope->priv = GST_AUDIO_VISUALIZER_GET_PRIVATE (scope);
+  scope->priv = gst_audio_visualizer_get_instance_private (scope);
 
   /* create the sink and src pads */
   pad_template =
index 06e03a2..b15b522 100644 (file)
@@ -158,7 +158,7 @@ _do_init (void)
 };
 
 G_DEFINE_TYPE_EXTENDED (GstDiscoverer, gst_discoverer, G_TYPE_OBJECT, 0,
-    _do_init ());
+    G_ADD_PRIVATE (GstDiscoverer) _do_init ());
 
 enum
 {
@@ -212,8 +212,6 @@ gst_discoverer_class_init (GstDiscovererClass * klass)
   gobject_class->set_property = gst_discoverer_set_property;
   gobject_class->get_property = gst_discoverer_get_property;
 
-  g_type_class_add_private (klass, sizeof (GstDiscovererPrivate));
-
   /* properties */
   /**
    * GstDiscoverer:timeout:
@@ -312,8 +310,7 @@ gst_discoverer_init (GstDiscoverer * dc)
   GstElement *tmp;
   GstFormat format = GST_FORMAT_TIME;
 
-  dc->priv = G_TYPE_INSTANCE_GET_PRIVATE (dc, GST_TYPE_DISCOVERER,
-      GstDiscovererPrivate);
+  dc->priv = gst_discoverer_get_instance_private (dc);
 
   dc->priv->timeout = DEFAULT_PROP_TIMEOUT;
   dc->priv->async = FALSE;