mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Add safe handle
function for rooted heap values
This commit is contained in:
parent
8aa2ebef0c
commit
ed0091f86f
1 changed files with 12 additions and 2 deletions
|
@ -59,9 +59,9 @@ use hyper::mime::Mime;
|
||||||
use hyper::status::StatusCode;
|
use hyper::status::StatusCode;
|
||||||
use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
||||||
use js::glue::{CallObjectTracer, CallValueTracer};
|
use js::glue::{CallObjectTracer, CallValueTracer};
|
||||||
use js::jsapi::{GCTraceKindToAscii, Heap, JSObject, JSTracer, TraceKind};
|
use js::jsapi::{GCTraceKindToAscii, Heap, Handle, JSObject, JSTracer, TraceKind};
|
||||||
use js::jsval::JSVal;
|
use js::jsval::JSVal;
|
||||||
use js::rust::Runtime;
|
use js::rust::{GCMethods, Runtime};
|
||||||
use js::typedarray::TypedArray;
|
use js::typedarray::TypedArray;
|
||||||
use js::typedarray::TypedArrayElement;
|
use js::typedarray::TypedArrayElement;
|
||||||
use metrics::{InteractiveMetrics, InteractiveWindow};
|
use metrics::{InteractiveMetrics, InteractiveWindow};
|
||||||
|
@ -788,6 +788,16 @@ impl<T: JSTraceable + 'static> RootedTraceableBox<T> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<T> RootedTraceableBox<Heap<T>>
|
||||||
|
where
|
||||||
|
Heap<T>: JSTraceable + 'static,
|
||||||
|
T: GCMethods + Copy,
|
||||||
|
{
|
||||||
|
pub fn handle(&self) -> Handle<T> {
|
||||||
|
unsafe { (*self.ptr).handle() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<T: JSTraceable + Default> Default for RootedTraceableBox<T> {
|
impl<T: JSTraceable + Default> Default for RootedTraceableBox<T> {
|
||||||
fn default() -> RootedTraceableBox<T> {
|
fn default() -> RootedTraceableBox<T> {
|
||||||
RootedTraceableBox::new(T::default())
|
RootedTraceableBox::new(T::default())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue