diff options
Diffstat (limited to 'components/script/dom/bindings/utils.rs')
-rw-r--r-- | components/script/dom/bindings/utils.rs | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs index eb1da6617e1..8b6f25d1f80 100644 --- a/components/script/dom/bindings/utils.rs +++ b/components/script/dom/bindings/utils.rs @@ -237,19 +237,19 @@ pub unsafe fn find_enum_value<'a, T>( v: HandleValue, pairs: &'a [(&'static str, T)], ) -> Result<(Option<&'a T>, DOMString), ()> { - let jsstr = ToString(cx, v); - if jsstr.is_null() { - return Err(()); + match ptr::NonNull::new(ToString(cx, v)) { + Some(jsstr) => { + let search = jsstring_to_str(cx, jsstr); + Ok(( + pairs + .iter() + .find(|&&(key, _)| search == *key) + .map(|(_, ev)| ev), + search, + )) + }, + None => Err(()), } - - let search = jsstring_to_str(cx, jsstr); - Ok(( - pairs - .iter() - .find(|&&(key, _)| search == *key) - .map(|(_, ev)| ev), - search, - )) } /// Returns wether `obj` is a platform object using dynamic unwrap |