diff options
Diffstat (limited to 'components/script/dom/macros.rs')
-rw-r--r-- | components/script/dom/macros.rs | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs index 53c5bd20115..bb5a55bcc54 100644 --- a/components/script/dom/macros.rs +++ b/components/script/dom/macros.rs @@ -302,37 +302,41 @@ macro_rules! make_nonzero_dimension_setter( /// For use on non-jsmanaged types /// Use #[derive(JSTraceable)] on JS managed types -macro_rules! no_jsmanaged_fields( +macro_rules! unsafe_no_jsmanaged_fields( ([$ty:ident; $count:expr]) => ( - impl $crate::dom::bindings::trace::JSTraceable for [$ty; $count] { + #[allow(unsafe_code)] + unsafe impl $crate::dom::bindings::trace::JSTraceable for [$ty; $count] { #[inline] - fn trace(&self, _: *mut ::js::jsapi::JSTracer) { + unsafe fn trace(&self, _: *mut ::js::jsapi::JSTracer) { // Do nothing } } ); ($($ty:ident),+) => ( $( - impl $crate::dom::bindings::trace::JSTraceable for $ty { + #[allow(unsafe_code)] + unsafe impl $crate::dom::bindings::trace::JSTraceable for $ty { #[inline] - fn trace(&self, _: *mut ::js::jsapi::JSTracer) { + unsafe fn trace(&self, _: *mut ::js::jsapi::JSTracer) { // Do nothing } } )+ ); ($ty:ident<$($gen:ident),+>) => ( - impl<$($gen),+> $crate::dom::bindings::trace::JSTraceable for $ty<$($gen),+> { + #[allow(unsafe_code)] + unsafe impl<$($gen),+> $crate::dom::bindings::trace::JSTraceable for $ty<$($gen),+> { #[inline] - fn trace(&self, _: *mut ::js::jsapi::JSTracer) { + unsafe fn trace(&self, _: *mut ::js::jsapi::JSTracer) { // Do nothing } } ); ($ty:ident<$($gen:ident: $bound:ident),+>) => ( - impl<$($gen: $bound),+> $crate::dom::bindings::trace::JSTraceable for $ty<$($gen),+> { + #[allow(unsafe_code)] + unsafe impl<$($gen: $bound),+> $crate::dom::bindings::trace::JSTraceable for $ty<$($gen),+> { #[inline] - fn trace(&self, _: *mut ::js::jsapi::JSTracer) { + unsafe fn trace(&self, _: *mut ::js::jsapi::JSTracer) { // Do nothing } } |