From a6a685e9540f9cbd1167288472cf6d9d89475337 Mon Sep 17 00:00:00 2001 From: Pierre Chevalier Date: Sat, 10 Oct 2015 18:13:37 +0100 Subject: [PATCH] Clarify some code in do_create_interface_objects rval.get() is believed to be always null upon entering this function. This assumption is verified by the added assertion. It makes more sense to move the block of code that was moved inside the if statement which is the only place where it can be initialized. Fixes #7941. --- components/script/dom/bindings/utils.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs index d00c164d0a9..4b2a0d341b5 100644 --- a/components/script/dom/bindings/utils.rs +++ b/components/script/dom/bindings/utils.rs @@ -218,20 +218,21 @@ pub fn do_create_interface_objects(cx: *mut JSContext, dom_class: Option<&'static DOMClass>, members: &'static NativeProperties, rval: MutableHandleObject) { + assert!(rval.get().is_null()); if let Some(proto_class) = proto_class { create_interface_prototype_object(cx, proto_proto, proto_class, members, rval); - } - if !rval.get().is_null() { - let dom_class_ptr = match dom_class { - Some(dom_class) => dom_class as *const DOMClass as *const libc::c_void, - None => ptr::null() as *const libc::c_void, - }; + if !rval.get().is_null() { + let dom_class_ptr = match dom_class { + Some(dom_class) => dom_class as *const DOMClass as *const libc::c_void, + None => ptr::null() as *const libc::c_void, + }; - unsafe { - JS_SetReservedSlot(rval.get(), DOM_PROTO_INSTANCE_CLASS_SLOT, - PrivateValue(dom_class_ptr)); + unsafe { + JS_SetReservedSlot(rval.get(), DOM_PROTO_INSTANCE_CLASS_SLOT, + PrivateValue(dom_class_ptr)); + } } }