From 9d074161638829deb0f0b1adacb8ff270abd1978 Mon Sep 17 00:00:00 2001 From: Usman Yahaya Baba <91813795+uthmaniv@users.noreply.github.com> Date: Sun, 6 Apr 2025 07:29:16 +0100 Subject: [PATCH] Remove unsafe from maybe_cross_origin_get_prototype (#36366) Remove unsafe from maybe_cross_origin_get_prototype -Refactors `maybe_cross_origin_get_prototype` to remove the `unsafe` annotation from the function signature and `get_proto_object` argument -Adds `unsafe` blocks around calls `D::GlobalScope::from_context` and `MutableHandleObject::from_raw` Testing: Changes does not require test Fixes: https://github.com/servo/servo/issues/36357 Signed-off-by: Uthman Yahaya Baba --- components/script_bindings/proxyhandler.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/components/script_bindings/proxyhandler.rs b/components/script_bindings/proxyhandler.rs index d1546722e66..c7d3860b3b9 100644 --- a/components/script_bindings/proxyhandler.rs +++ b/components/script_bindings/proxyhandler.rs @@ -579,21 +579,19 @@ pub(crate) unsafe extern "C" fn maybe_cross_origin_set_rawcx( /// Implementation of `[[GetPrototypeOf]]` for [`Location`]. /// /// [`Location`]: https://html.spec.whatwg.org/multipage/#location-getprototypeof -pub(crate) unsafe fn maybe_cross_origin_get_prototype( +pub(crate) fn maybe_cross_origin_get_prototype( cx: SafeJSContext, proxy: RawHandleObject, - get_proto_object: unsafe fn(cx: SafeJSContext, global: HandleObject, rval: MutableHandleObject), + get_proto_object: fn(cx: SafeJSContext, global: HandleObject, rval: MutableHandleObject), proto: RawMutableHandleObject, ) -> bool { // > 1. If ! IsPlatformObjectSameOrigin(this) is true, then return ! OrdinaryGetPrototypeOf(this). if >::is_platform_object_same_origin(cx, proxy) { let ac = JSAutoRealm::new(*cx, proxy.get()); - let global = D::GlobalScope::from_context(*cx, InRealm::Entered(&ac)); - get_proto_object( - cx, - global.reflector().get_jsobject(), - MutableHandleObject::from_raw(proto), - ); + let global = unsafe { D::GlobalScope::from_context(*cx, InRealm::Entered(&ac)) }; + get_proto_object(cx, global.reflector().get_jsobject(), unsafe { + MutableHandleObject::from_raw(proto) + }); return !proto.is_null(); }