зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #7943 - Clarify some code in do_create_interface_objects (from pierrechevalier83:fix_issue_7941); r=Ms2ger
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. Source-Repo: https://github.com/servo/servo Source-Revision: 6111cf9ffcb4427ab9a0966b9a4d0387b3101e7b
This commit is contained in:
Родитель
4ed7dd44e3
Коммит
cfc0603fb6
|
@ -222,20 +222,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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче