[DllImport ("gstreamersharpglue-0.10") ]
extern static uint gstsharp_gst_event_get_src_offset ();
+[DllImport ("gobject-2.0.dll")]
+extern static IntPtr g_object_ref (IntPtr handle);
+
+[DllImport ("gobject-2.0.dll")]
+extern static void g_object_unref (IntPtr handle);
+
static uint src_offset = gstsharp_gst_event_get_src_offset ();
public Gst.Object Src {
get {
if (!IsWritable)
throw new ApplicationException ();
+ if (Src != null)
+ g_object_unref (Src.Handle);
+
unsafe {
IntPtr* raw_ptr = (IntPtr*) ( ( (byte*) Handle) + src_offset);
- *raw_ptr = value == null ? IntPtr.Zero : value.Handle;
+ *raw_ptr = value == null ? IntPtr.Zero : g_object_ref (value.Handle);
}
}
}
[DllImport ("gstreamersharpglue-0.10") ]
extern static uint gstsharp_gst_message_get_src_offset ();
+[DllImport ("gobject-2.0.dll")]
+extern static IntPtr g_object_ref (IntPtr handle);
+
+[DllImport ("gobject-2.0.dll")]
+extern static void g_object_unref (IntPtr handle);
+
static uint src_offset = gstsharp_gst_message_get_src_offset ();
public Gst.Object Src {
get {
if (!IsWritable)
throw new ApplicationException ();
+ if (Src != null)
+ g_object_unref (Src.Handle);
+
unsafe {
IntPtr* raw_ptr = (IntPtr*) ( ( (byte*) Handle) + src_offset);
- *raw_ptr = value == null ? IntPtr.Zero : value.Handle;
+ *raw_ptr = value == null ? IntPtr.Zero : g_object_ref (value.Handle);
}
}
}