mirror of
https://github.com/servo/servo.git
synced 2025-10-08 12:39:30 +01:00
Introduce mutable/immutable variants of reflector() with named lifetimes, and kill unsafe casts.
This commit is contained in:
parent
e6be738d97
commit
c4bbc4cd37
24 changed files with 158 additions and 87 deletions
|
@ -12,10 +12,14 @@ use js::jsapi::{JSContext, JSObject, JSTracer};
|
|||
macro_rules! generate_cacheable_wrapper(
|
||||
($name: path, $wrap: path) => (
|
||||
impl Reflectable for $name {
|
||||
fn reflector(&mut self) -> &mut Reflector {
|
||||
fn reflector<'a>(&'a self) -> &'a Reflector {
|
||||
self.element.reflector()
|
||||
}
|
||||
|
||||
fn mut_reflector<'a>(&'a mut self) -> &'a mut Reflector {
|
||||
self.element.mut_reflector()
|
||||
}
|
||||
|
||||
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
|
||||
let mut unused = false;
|
||||
$wrap(cx, scope, self, &mut unused)
|
||||
|
@ -27,10 +31,14 @@ macro_rules! generate_cacheable_wrapper(
|
|||
macro_rules! generate_cacheable_wrapper_htmlelement(
|
||||
($name: path, $wrap: path) => (
|
||||
impl Reflectable for $name {
|
||||
fn reflector(&mut self) -> &mut Reflector {
|
||||
fn reflector<'a>(&'a self) -> &'a Reflector {
|
||||
self.htmlelement.reflector()
|
||||
}
|
||||
|
||||
fn mut_reflector<'a>(&'a mut self) -> &'a mut Reflector {
|
||||
self.htmlelement.mut_reflector()
|
||||
}
|
||||
|
||||
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
|
||||
let mut unused = false;
|
||||
$wrap(cx, scope, self, &mut unused)
|
||||
|
@ -42,10 +50,14 @@ macro_rules! generate_cacheable_wrapper_htmlelement(
|
|||
macro_rules! generate_cacheable_wrapper_node(
|
||||
($name: path, $wrap: path) => (
|
||||
impl Reflectable for $name {
|
||||
fn reflector(&mut self) -> &mut Reflector {
|
||||
fn reflector<'a>(&'a self) -> &'a Reflector {
|
||||
self.node.reflector()
|
||||
}
|
||||
|
||||
fn mut_reflector<'a>(&'a mut self) -> &'a mut Reflector {
|
||||
self.node.mut_reflector()
|
||||
}
|
||||
|
||||
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
|
||||
let mut unused = false;
|
||||
$wrap(cx, scope, self, &mut unused)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue