Revert "Remove callback guards"

This reverts commit 75248c7f07.

Callback guards are required since 1.24.1 again but probably not in 1.25
forwards.
This commit is contained in:
Sebastian Dröge 2018-03-02 21:35:50 +02:00
parent da433f92af
commit 24e5c435a7
8 changed files with 70 additions and 0 deletions

View file

@ -299,6 +299,7 @@ unsafe extern "C" fn base_sink_start<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -313,6 +314,7 @@ unsafe extern "C" fn base_sink_stop<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -328,6 +330,7 @@ unsafe extern "C" fn base_sink_render<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -346,6 +349,7 @@ unsafe extern "C" fn base_sink_prepare<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -364,6 +368,7 @@ unsafe extern "C" fn base_sink_render_list<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -382,6 +387,7 @@ unsafe extern "C" fn base_sink_prepare_list<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -400,6 +406,7 @@ unsafe extern "C" fn base_sink_query<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -418,6 +425,7 @@ unsafe extern "C" fn base_sink_event<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -435,6 +443,7 @@ unsafe extern "C" fn base_sink_get_caps<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -458,6 +467,7 @@ unsafe extern "C" fn base_sink_set_caps<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -476,6 +486,7 @@ unsafe extern "C" fn base_sink_fixate<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -493,6 +504,7 @@ unsafe extern "C" fn base_sink_unlock<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -507,6 +519,7 @@ unsafe extern "C" fn base_sink_unlock_stop<T: BaseSinkBase>(
where
T::ImplType: BaseSinkImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);

View file

@ -370,6 +370,7 @@ unsafe extern "C" fn base_src_start<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -384,6 +385,7 @@ unsafe extern "C" fn base_src_stop<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -398,6 +400,7 @@ unsafe extern "C" fn base_src_is_seekable<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -413,6 +416,7 @@ unsafe extern "C" fn base_src_get_size<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -438,6 +442,7 @@ unsafe extern "C" fn base_src_fill<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -458,6 +463,7 @@ unsafe extern "C" fn base_src_create<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -484,6 +490,7 @@ unsafe extern "C" fn base_src_do_seek<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -501,6 +508,7 @@ unsafe extern "C" fn base_src_query<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -519,6 +527,7 @@ unsafe extern "C" fn base_src_event<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -536,6 +545,7 @@ unsafe extern "C" fn base_src_get_caps<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -558,6 +568,7 @@ unsafe extern "C" fn base_src_negotiate<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -573,6 +584,7 @@ unsafe extern "C" fn base_src_set_caps<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -591,6 +603,7 @@ unsafe extern "C" fn base_src_fixate<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -608,6 +621,7 @@ unsafe extern "C" fn base_src_unlock<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -622,6 +636,7 @@ unsafe extern "C" fn base_src_unlock_stop<T: BaseSrcBase>(
where
T::ImplType: BaseSrcImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);

View file

@ -428,6 +428,7 @@ unsafe extern "C" fn base_transform_start<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -442,6 +443,7 @@ unsafe extern "C" fn base_transform_stop<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -459,6 +461,7 @@ unsafe extern "C" fn base_transform_transform_caps<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -489,6 +492,7 @@ unsafe extern "C" fn base_transform_fixate_caps<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -512,6 +516,7 @@ unsafe extern "C" fn base_transform_set_caps<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -530,6 +535,7 @@ unsafe extern "C" fn base_transform_accept_caps<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -548,6 +554,7 @@ unsafe extern "C" fn base_transform_query<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -574,6 +581,7 @@ unsafe extern "C" fn base_transform_transform_size<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -604,6 +612,7 @@ unsafe extern "C" fn base_transform_get_unit_size<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -627,6 +636,7 @@ unsafe extern "C" fn base_transform_sink_event<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -644,6 +654,7 @@ unsafe extern "C" fn base_transform_src_event<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -662,6 +673,7 @@ unsafe extern "C" fn base_transform_transform<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -683,6 +695,7 @@ unsafe extern "C" fn base_transform_transform_ip<T: BaseTransformBase>(
where
T::ImplType: BaseTransformImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);

View file

@ -155,6 +155,7 @@ unsafe extern "C" fn bin_add_element<T: BinBase>(
where
T::ImplType: BinImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let bin = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -172,6 +173,7 @@ unsafe extern "C" fn bin_remove_element<T: BinBase>(
where
T::ImplType: BinImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let bin = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -188,6 +190,7 @@ unsafe extern "C" fn bin_handle_message<T: BinBase>(
) where
T::ImplType: BinImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let bin = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);

View file

@ -235,6 +235,7 @@ unsafe extern "C" fn element_change_state<T: ElementBase>(
where
T::ImplType: ElementImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -264,6 +265,7 @@ unsafe extern "C" fn element_request_new_pad<T: ElementBase>(
where
T::ImplType: ElementImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -299,6 +301,7 @@ unsafe extern "C" fn element_release_pad<T: ElementBase>(
) where
T::ImplType: ElementImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -316,6 +319,7 @@ unsafe extern "C" fn element_send_event<T: ElementBase>(
where
T::ImplType: ElementImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -333,6 +337,7 @@ unsafe extern "C" fn element_query<T: ElementBase>(
where
T::ImplType: ElementImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);
@ -348,6 +353,7 @@ unsafe extern "C" fn element_set_context<T: ElementBase>(
) where
T::ImplType: ElementImpl<T>,
{
callback_guard!();
floating_reference_guard!(ptr);
let element = &*(ptr as *mut InstanceStruct<T>);
let wrap: T = from_glib_borrow(ptr as *mut InstanceStruct<T>);

View file

@ -22,6 +22,12 @@ pub extern crate glib;
pub extern crate gstreamer as gst;
extern crate gstreamer_base as gst_base;
macro_rules! callback_guard {
() => (
let _guard = ::glib::CallbackGuard::new();
)
}
macro_rules! floating_reference_guard {
($obj:ident) => (
let _guard = $crate::FloatingReferenceGuard::new($obj as *mut _);

View file

@ -217,6 +217,7 @@ pub unsafe trait ObjectClass {
handler_return: *const gobject_ffi::GValue,
data: glib_ffi::gpointer,
) -> glib_ffi::gboolean {
callback_guard!();
let accumulator: &&(Fn(&mut glib::Value, &glib::Value) -> bool
+ Send
+ Sync
@ -277,6 +278,7 @@ unsafe extern "C" fn class_init<T: ObjectType>(
klass: glib_ffi::gpointer,
_klass_data: glib_ffi::gpointer,
) {
callback_guard!();
{
let gobject_klass = &mut *(klass as *mut gobject_ffi::GObjectClass);
@ -295,6 +297,7 @@ unsafe extern "C" fn class_init<T: ObjectType>(
}
unsafe extern "C" fn finalize<T: ObjectType>(obj: *mut gobject_ffi::GObject) {
callback_guard!();
let instance = &mut *(obj as *mut InstanceStruct<T>);
drop(Box::from_raw(instance.imp as *mut T::ImplType));
@ -313,6 +316,7 @@ unsafe extern "C" fn get_property<T: ObjectType>(
value: *mut gobject_ffi::GValue,
_pspec: *mut gobject_ffi::GParamSpec,
) {
callback_guard!();
floating_reference_guard!(obj);
match T::get_property(&from_glib_borrow(obj as *mut InstanceStruct<T>), id - 1) {
Ok(v) => {
@ -330,6 +334,7 @@ unsafe extern "C" fn set_property<T: ObjectType>(
value: *mut gobject_ffi::GValue,
_pspec: *mut gobject_ffi::GParamSpec,
) {
callback_guard!();
floating_reference_guard!(obj);
T::set_property(
&from_glib_borrow(obj as *mut InstanceStruct<T>),
@ -394,6 +399,7 @@ unsafe extern "C" fn sub_class_init<T: ObjectType>(
klass: glib_ffi::gpointer,
klass_data: glib_ffi::gpointer,
) {
callback_guard!();
{
let gobject_klass = &mut *(klass as *mut gobject_ffi::GObjectClass);
@ -416,6 +422,7 @@ unsafe extern "C" fn sub_get_property<T: ObjectType>(
value: *mut gobject_ffi::GValue,
_pspec: *mut gobject_ffi::GParamSpec,
) {
callback_guard!();
floating_reference_guard!(obj);
let instance = &*(obj as *mut InstanceStruct<T>);
let imp = instance.get_impl();
@ -436,6 +443,7 @@ unsafe extern "C" fn sub_set_property<T: ObjectType>(
value: *mut gobject_ffi::GValue,
_pspec: *mut gobject_ffi::GParamSpec,
) {
callback_guard!();
floating_reference_guard!(obj);
let instance = &*(obj as *mut InstanceStruct<T>);
let imp = instance.get_impl();
@ -450,6 +458,7 @@ unsafe extern "C" fn sub_init<T: ObjectType>(
obj: *mut gobject_ffi::GTypeInstance,
_klass: glib_ffi::gpointer,
) {
callback_guard!();
floating_reference_guard!(obj);
let instance = &mut *(obj as *mut InstanceStruct<T>);
let klass = &**(obj as *const *const ClassStruct<T>);

View file

@ -40,6 +40,7 @@ struct URIHandlerStatic<T: ObjectType> {
unsafe extern "C" fn uri_handler_get_type<T: ObjectType>(
type_: glib_ffi::GType,
) -> gst_ffi::GstURIType {
callback_guard!();
let klass = gobject_ffi::g_type_class_peek(type_);
let klass = &*(klass as *const ClassStruct<T>);
let interface_static = klass.get_interface_static(gst_ffi::gst_uri_handler_get_type())
@ -50,6 +51,7 @@ unsafe extern "C" fn uri_handler_get_type<T: ObjectType>(
unsafe extern "C" fn uri_handler_get_protocols<T: ObjectType>(
type_: glib_ffi::GType,
) -> *const *const libc::c_char {
callback_guard!();
let klass = gobject_ffi::g_type_class_peek(type_);
let klass = &*(klass as *const ClassStruct<T>);
let interface_static = klass.get_interface_static(gst_ffi::gst_uri_handler_get_type())
@ -60,6 +62,7 @@ unsafe extern "C" fn uri_handler_get_protocols<T: ObjectType>(
unsafe extern "C" fn uri_handler_get_uri<T: ObjectType>(
uri_handler: *mut gst_ffi::GstURIHandler,
) -> *mut libc::c_char {
callback_guard!();
floating_reference_guard!(uri_handler);
let klass = &**(uri_handler as *const *const ClassStruct<T>);
@ -78,6 +81,7 @@ unsafe extern "C" fn uri_handler_set_uri<T: ObjectType>(
uri: *const libc::c_char,
err: *mut *mut glib_ffi::GError,
) -> glib_ffi::gboolean {
callback_guard!();
floating_reference_guard!(uri_handler);
let klass = &**(uri_handler as *const *const ClassStruct<T>);
@ -101,6 +105,7 @@ unsafe extern "C" fn uri_handler_init<T: ObjectType>(
iface: glib_ffi::gpointer,
iface_data: glib_ffi::gpointer,
) {
callback_guard!();
let uri_handler_iface = &mut *(iface as *mut gst_ffi::GstURIHandlerInterface);
let iface_type = (*(iface as *const gobject_ffi::GTypeInterface)).g_type;