mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Move unsafe_no_jsmanaged_fields to trace
This commit is contained in:
parent
8c40ef459b
commit
72b1df343e
3 changed files with 9 additions and 17 deletions
|
@ -48,6 +48,7 @@ use dom::bindings::str::{DOMString, USVString};
|
||||||
use dom::bindings::utils::WindowProxyHandler;
|
use dom::bindings::utils::WindowProxyHandler;
|
||||||
use dom::document::PendingRestyle;
|
use dom::document::PendingRestyle;
|
||||||
use dom::htmlimageelement::SourceSet;
|
use dom::htmlimageelement::SourceSet;
|
||||||
|
use dom::htmlmediaelement::MediaFrameRenderer;
|
||||||
use encoding_rs::{Decoder, Encoding};
|
use encoding_rs::{Decoder, Encoding};
|
||||||
use euclid::{Transform2D, Transform3D, Point2D, Vector2D, Rect, TypedSize2D, TypedScale};
|
use euclid::{Transform2D, Transform3D, Point2D, Vector2D, Rect, TypedSize2D, TypedScale};
|
||||||
use euclid::Length as EuclidLength;
|
use euclid::Length as EuclidLength;
|
||||||
|
@ -96,6 +97,7 @@ use servo_media::audio::context::AudioContext;
|
||||||
use servo_media::audio::graph::NodeId;
|
use servo_media::audio::graph::NodeId;
|
||||||
use servo_media::audio::panner_node::{DistanceModel, PanningModel};
|
use servo_media::audio::panner_node::{DistanceModel, PanningModel};
|
||||||
use servo_media::audio::param::ParamType;
|
use servo_media::audio::param::ParamType;
|
||||||
|
use servo_media::player::Player;
|
||||||
use servo_url::{ImmutableOrigin, MutableOrigin, ServoUrl};
|
use servo_url::{ImmutableOrigin, MutableOrigin, ServoUrl};
|
||||||
use smallvec::SmallVec;
|
use smallvec::SmallVec;
|
||||||
use std::cell::{Cell, RefCell, UnsafeCell};
|
use std::cell::{Cell, RefCell, UnsafeCell};
|
||||||
|
@ -104,7 +106,7 @@ use std::hash::{BuildHasher, Hash};
|
||||||
use std::ops::{Deref, DerefMut};
|
use std::ops::{Deref, DerefMut};
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::sync::Arc;
|
use std::sync::{Arc, Mutex};
|
||||||
use std::sync::atomic::{AtomicBool, AtomicUsize};
|
use std::sync::atomic::{AtomicBool, AtomicUsize};
|
||||||
use std::time::{SystemTime, Instant};
|
use std::time::{SystemTime, Instant};
|
||||||
use style::attr::{AttrIdentifier, AttrValue, LengthOrPercentageOrAuto};
|
use style::attr::{AttrIdentifier, AttrValue, LengthOrPercentageOrAuto};
|
||||||
|
@ -121,7 +123,7 @@ use style::stylesheets::keyframes_rule::Keyframe;
|
||||||
use style::values::specified::Length;
|
use style::values::specified::Length;
|
||||||
use time::Duration;
|
use time::Duration;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
use webrender_api::{DocumentId, ImageKey};
|
use webrender_api::{DocumentId, ImageKey, RenderApiSender};
|
||||||
use webvr_traits::WebVRGamepadHand;
|
use webvr_traits::WebVRGamepadHand;
|
||||||
|
|
||||||
/// A trait to allow tracing (only) DOM objects.
|
/// A trait to allow tracing (only) DOM objects.
|
||||||
|
@ -454,6 +456,9 @@ unsafe_no_jsmanaged_fields!(AudioBuffer);
|
||||||
unsafe_no_jsmanaged_fields!(AudioContext<Backend>);
|
unsafe_no_jsmanaged_fields!(AudioContext<Backend>);
|
||||||
unsafe_no_jsmanaged_fields!(NodeId);
|
unsafe_no_jsmanaged_fields!(NodeId);
|
||||||
unsafe_no_jsmanaged_fields!(AnalysisEngine, DistanceModel, PanningModel, ParamType);
|
unsafe_no_jsmanaged_fields!(AnalysisEngine, DistanceModel, PanningModel, ParamType);
|
||||||
|
unsafe_no_jsmanaged_fields!(Player);
|
||||||
|
unsafe_no_jsmanaged_fields!(Mutex<MediaFrameRenderer>);
|
||||||
|
unsafe_no_jsmanaged_fields!(RenderApiSender);
|
||||||
|
|
||||||
unsafe impl<'a> JSTraceable for &'a str {
|
unsafe impl<'a> JSTraceable for &'a str {
|
||||||
#[inline]
|
#[inline]
|
||||||
|
|
|
@ -54,10 +54,7 @@ use time::{self, Timespec, Duration};
|
||||||
use webrender_api::{ImageData, ImageDescriptor, ImageFormat, ImageKey, RenderApi};
|
use webrender_api::{ImageData, ImageDescriptor, ImageFormat, ImageKey, RenderApi};
|
||||||
use webrender_api::{RenderApiSender, Transaction};
|
use webrender_api::{RenderApiSender, Transaction};
|
||||||
|
|
||||||
unsafe_no_jsmanaged_fields!(Player);
|
pub struct MediaFrameRenderer {
|
||||||
unsafe_no_jsmanaged_fields!(Mutex<MediaFrameRenderer>);
|
|
||||||
|
|
||||||
struct MediaFrameRenderer {
|
|
||||||
api: RenderApi,
|
api: RenderApi,
|
||||||
current_frame: Option<(ImageKey, i32, i32)>,
|
current_frame: Option<(ImageKey, i32, i32)>,
|
||||||
old_frame: Option<ImageKey>,
|
old_frame: Option<ImageKey>,
|
||||||
|
|
|
@ -132,9 +132,7 @@ use time;
|
||||||
use timers::{IsInterval, TimerCallback};
|
use timers::{IsInterval, TimerCallback};
|
||||||
use url::Position;
|
use url::Position;
|
||||||
use webdriver_handlers::jsval_to_webdriver;
|
use webdriver_handlers::jsval_to_webdriver;
|
||||||
use webrender_api::{
|
use webrender_api::{DeviceIntPoint, DeviceUintSize, DocumentId, ExternalScrollId, RenderApiSender};
|
||||||
DeviceIntPoint, DeviceUintSize, DocumentId, ExternalScrollId, RenderApiSender,
|
|
||||||
};
|
|
||||||
use webvr_traits::WebVRMsg;
|
use webvr_traits::WebVRMsg;
|
||||||
|
|
||||||
/// Current state of the window object
|
/// Current state of the window object
|
||||||
|
@ -315,14 +313,6 @@ pub struct Window {
|
||||||
webrender_api_sender: RenderApiSender,
|
webrender_api_sender: RenderApiSender,
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME(victor): this doesn't belong here
|
|
||||||
#[allow(unsafe_code)]
|
|
||||||
unsafe impl ::dom::bindings::trace::JSTraceable for RenderApiSender {
|
|
||||||
unsafe fn trace(&self, _trc: *mut ::js::jsapi::JSTracer) {
|
|
||||||
// Do nothing
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Window {
|
impl Window {
|
||||||
pub fn get_exists_mut_observer(&self) -> bool {
|
pub fn get_exists_mut_observer(&self) -> bool {
|
||||||
self.exists_mut_observer.get()
|
self.exists_mut_observer.get()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue