mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Make {get,ensure}_expando_object unsafe.
They trust the caller-provided raw pointers to be valid.
This commit is contained in:
parent
bd431039b9
commit
b57abc19da
1 changed files with 15 additions and 19 deletions
|
@ -159,8 +159,7 @@ pub unsafe extern "C" fn get_prototype_if_ordinary(_: *mut JSContext,
|
|||
}
|
||||
|
||||
/// Get the expando object, or null if there is none.
|
||||
pub fn get_expando_object(obj: HandleObject, expando: MutableHandleObject) {
|
||||
unsafe {
|
||||
pub unsafe fn get_expando_object(obj: HandleObject, expando: MutableHandleObject) {
|
||||
assert!(is_dom_proxy(obj.get()));
|
||||
let val = GetProxyExtra(obj.get(), JSPROXYSLOT_EXPANDO);
|
||||
expando.set(if val.is_undefined() {
|
||||
|
@ -169,12 +168,10 @@ pub fn get_expando_object(obj: HandleObject, expando: MutableHandleObject) {
|
|||
val.to_object()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/// Get the expando object, or create it if it doesn't exist yet.
|
||||
/// Fails on JSAPI failure.
|
||||
pub fn ensure_expando_object(cx: *mut JSContext, obj: HandleObject, expando: MutableHandleObject) {
|
||||
unsafe {
|
||||
pub unsafe fn ensure_expando_object(cx: *mut JSContext, obj: HandleObject, expando: MutableHandleObject) {
|
||||
assert!(is_dom_proxy(obj.get()));
|
||||
get_expando_object(obj, expando);
|
||||
if expando.is_null() {
|
||||
|
@ -184,7 +181,6 @@ pub fn ensure_expando_object(cx: *mut JSContext, obj: HandleObject, expando: Mut
|
|||
SetProxyExtra(obj.get(), JSPROXYSLOT_EXPANDO, &ObjectValue(expando.get()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Set the property descriptor's object to `obj` and set it to enumerable,
|
||||
/// and writable if `readonly` is true.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue