gstfunnel: avoid access of freed pad
[platform/upstream/gstreamer.git] / gst / gstpadtemplate.h
index 0433d49..90f9b25 100644 (file)
 
 #include <gst/gstconfig.h>
 
+typedef struct _GstPadTemplate GstPadTemplate;
+typedef struct _GstPadTemplateClass GstPadTemplateClass;
+typedef struct _GstStaticPadTemplate GstStaticPadTemplate;
+
 #include <gst/gstobject.h>
 #include <gst/gstbuffer.h>
 #include <gst/gstcaps.h>
 
 G_BEGIN_DECLS
 
-/* FIXME: this awful circular dependency need to be resolved properly (see pad.h) */
-/*typedef struct _GstPadTemplate GstPadTemplate; */
-typedef struct _GstPadTemplateClass GstPadTemplateClass;
-typedef struct _GstStaticPadTemplate GstStaticPadTemplate;
-
 #define GST_TYPE_STATIC_PAD_TEMPLATE   (gst_static_pad_template_get_type ())
 
 #define GST_TYPE_PAD_TEMPLATE          (gst_pad_template_get_type ())
@@ -97,14 +96,11 @@ typedef enum {
 
 /**
  * GstPadTemplateFlags:
- * @GST_PAD_TEMPLATE_FIXED: the padtemplate has no variable properties
  * @GST_PAD_TEMPLATE_FLAG_LAST: first flag that can be used by subclasses.
  *
  * Flags for the padtemplate
  */
 typedef enum {
-  /* FIXME0.11: this is not used and the purpose is unclear */
-  GST_PAD_TEMPLATE_FIXED        = (GST_OBJECT_FLAG_LAST << 0),
   /* padding */
   GST_PAD_TEMPLATE_FLAG_LAST    = (GST_OBJECT_FLAG_LAST << 4)
 } GstPadTemplateFlags;
@@ -130,6 +126,7 @@ struct _GstPadTemplate {
   GstPadPresence   presence;
   GstCaps        *caps;
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
@@ -139,10 +136,11 @@ struct _GstPadTemplateClass {
   /* signal callbacks */
   void (*pad_created)  (GstPadTemplate *templ, GstPad *pad);
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
-/** 
+/**
  * GstStaticPadTemplate:
  * @name_template: the name of the template
  * @direction: the direction of the template