mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Use out parameter for generated methods returning JSVal (#34087)
* Make generated bindings that return a WebIDL `any` value use out parameters. Returning raw JSVal values makes it easier to create GC hazards in code that calls these methods. Accepting a MutableHandle argument instead ensures that the values are rooted by the caller. Signed-off-by: Josh Matthews <josh@joshmatthews.net> * Update mozjs. Signed-off-by: Josh Matthews <josh@joshmatthews.net> * Fix clippy warnings. Signed-off-by: Josh Matthews <josh@joshmatthews.net> --------- Signed-off-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
parent
537958a3cc
commit
25a0764a37
38 changed files with 763 additions and 515 deletions
|
@ -11,8 +11,8 @@ use std::time::Duration;
|
|||
|
||||
use dom_struct::dom_struct;
|
||||
use js::jsapi::{Heap, JSObject, JS_NewPlainObject};
|
||||
use js::jsval::{JSVal, NullValue};
|
||||
use js::rust::{CustomAutoRooterGuard, HandleObject, HandleValue};
|
||||
use js::jsval::JSVal;
|
||||
use js::rust::{CustomAutoRooterGuard, HandleObject, HandleValue, MutableHandleValue};
|
||||
use js::typedarray::{self, Uint8ClampedArray};
|
||||
use script_traits::serializable::BlobImpl;
|
||||
use servo_config::prefs;
|
||||
|
@ -229,9 +229,7 @@ impl TestBindingMethods for TestBinding {
|
|||
create_buffer_source(cx, &data, array.handle_mut())
|
||||
.expect("Creating ClampedU8 array should never fail")
|
||||
}
|
||||
fn AnyAttribute(&self, _: SafeJSContext) -> JSVal {
|
||||
NullValue()
|
||||
}
|
||||
fn AnyAttribute(&self, _: SafeJSContext, _: MutableHandleValue) {}
|
||||
fn SetAnyAttribute(&self, _: SafeJSContext, _: HandleValue) {}
|
||||
#[allow(unsafe_code)]
|
||||
fn ObjectAttribute(&self, cx: SafeJSContext) -> NonNull<JSObject> {
|
||||
|
@ -426,9 +424,7 @@ impl TestBindingMethods for TestBinding {
|
|||
can_gc,
|
||||
)
|
||||
}
|
||||
fn ReceiveAny(&self, _: SafeJSContext) -> JSVal {
|
||||
NullValue()
|
||||
}
|
||||
fn ReceiveAny(&self, _: SafeJSContext, _: MutableHandleValue) {}
|
||||
fn ReceiveObject(&self, cx: SafeJSContext) -> NonNull<JSObject> {
|
||||
self.ObjectAttribute(cx)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue