element: Enforce that elements created by gst_element_factory_create/make() are floating
[platform/upstream/gstreamer.git] / gst / gstsample.c
index eca4683..627ea07 100644 (file)
@@ -101,6 +101,9 @@ _gst_sample_free (GstSample * sample)
         GST_MINI_OBJECT_CAST (sample));
     gst_buffer_list_unref (sample->buffer_list);
   }
+#ifdef USE_POISONING
+  memset (sample, 0xff, sizeof (GstSample));
+#endif
 
   g_slice_free1 (sizeof (GstSample), sample);
 }
@@ -287,6 +290,8 @@ gst_sample_set_buffer_list (GstSample * sample, GstBufferList * buffer_list)
     sample->buffer_list = gst_buffer_list_ref (buffer_list);
     gst_mini_object_add_parent (GST_MINI_OBJECT_CAST (sample->buffer_list),
         GST_MINI_OBJECT_CAST (sample));
+  } else {
+    sample->buffer_list = NULL;
   }
 
   if (old) {
@@ -322,6 +327,8 @@ gst_sample_set_buffer (GstSample * sample, GstBuffer * buffer)
     sample->buffer = gst_buffer_ref (buffer);
     gst_mini_object_add_parent (GST_MINI_OBJECT_CAST (sample->buffer),
         GST_MINI_OBJECT_CAST (sample));
+  } else {
+    sample->buffer = NULL;
   }
 
   if (old) {
@@ -357,6 +364,8 @@ gst_sample_set_caps (GstSample * sample, GstCaps * caps)
     sample->caps = gst_caps_ref (caps);
     gst_mini_object_add_parent (GST_MINI_OBJECT_CAST (sample->caps),
         GST_MINI_OBJECT_CAST (sample));
+  } else {
+    sample->caps = NULL;
   }
 
   if (old) {