зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #4713 - Return *const T from JS::unsafe_get() (fixes #4712) (from Ms2ger:unsafe_get-const); r=jdm
Source-Repo: https://github.com/servo/servo Source-Revision: ff8cbff81016c157373c1675f3eee69dd70ae544
This commit is contained in:
Родитель
d01d9349ee
Коммит
9b3f8fdb5e
|
@ -369,10 +369,8 @@ impl<'ln> TNode<'ln, LayoutElement<'ln>> for LayoutNode<'ln> {
|
|||
None => panic!("not an element")
|
||||
};
|
||||
|
||||
let element = &*elem.unsafe_get();
|
||||
|
||||
LayoutElement {
|
||||
element: mem::transmute(element),
|
||||
element: &*elem.unsafe_get(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -719,7 +717,7 @@ impl<'ln> TLayoutNode for ThreadSafeLayoutNode<'ln> {
|
|||
}
|
||||
|
||||
unsafe fn get<'a>(&'a self) -> &'a Node { // this change.
|
||||
mem::transmute::<*mut Node,&'a Node>(self.get_jsmanaged().unsafe_get())
|
||||
&*self.get_jsmanaged().unsafe_get()
|
||||
}
|
||||
|
||||
fn first_child(&self) -> Option<ThreadSafeLayoutNode<'ln>> {
|
||||
|
@ -819,7 +817,7 @@ impl<'ln> ThreadSafeLayoutNode<'ln> {
|
|||
// FIXME(pcwalton): Workaround until Rust gets multiple lifetime parameters on
|
||||
// implementations.
|
||||
ThreadSafeLayoutElement {
|
||||
element: &mut *element,
|
||||
element: &*element,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -311,8 +311,8 @@ impl<T: Reflectable> JS<T> {
|
|||
/// Returns an unsafe pointer to the interior of this object. This is the
|
||||
/// only method that be safely accessed from layout. (The fact that this is
|
||||
/// unsafe is what necessitates the layout wrappers.)
|
||||
pub unsafe fn unsafe_get(&self) -> *mut T {
|
||||
self.ptr as *mut T
|
||||
pub unsafe fn unsafe_get(&self) -> *const T {
|
||||
self.ptr
|
||||
}
|
||||
|
||||
/// Store an unrooted value in this field. This is safe under the assumption that JS<T>
|
||||
|
|
Загрузка…
Ссылка в новой задаче