Bug 1461858 part 2 - Make from_image_request infallible. r?emilio
All callsites already assert, so moving the assertion into the method
should be fine. It is not expected to handle a null image value anyway.
MozReview-Commit-ID: J8CA8m22eSv
--- a/servo/components/style/gecko/url.rs
+++ b/servo/components/style/gecko/url.rs
@@ -312,18 +312,15 @@ impl ComputedImageUrl {
/// Convert from URLValueData to SpecifiedUrl.
pub unsafe fn from_url_value_data(url: &URLValueData) -> Self {
ComputedImageUrl(
SpecifiedImageUrl::from_css_url(CssUrl::from_url_value_data(url))
)
}
/// Convert from nsStyleImageReques to ComputedImageUrl.
- pub unsafe fn from_image_request(image_request: &nsStyleImageRequest) -> Result<Self, ()> {
- if image_request.mImageValue.mRawPtr.is_null() {
- return Err(());
- }
-
- let image_value = image_request.mImageValue.mRawPtr.as_ref().unwrap();
+ pub unsafe fn from_image_request(image_request: &nsStyleImageRequest) -> Self {
+ let image_value = image_request.mImageValue.mRawPtr
+ .as_ref().expect("mImageValue is null");
let url_value_data = &image_value._base;
- Ok(Self::from_url_value_data(url_value_data))
+ Self::from_url_value_data(url_value_data)
}
}
--- a/servo/components/style/properties/gecko.mako.rs
+++ b/servo/components/style/properties/gecko.mako.rs
@@ -4140,19 +4140,17 @@ fn static_assert() {
use values::computed::url::ComputedImageUrl;
if self.gecko.mListStyleImage.mRawPtr.is_null() {
return UrlOrNone::None;
}
unsafe {
let ref gecko_image_request = *self.gecko.mListStyleImage.mRawPtr;
- UrlOrNone::Url(ComputedImageUrl::from_image_request(
- gecko_image_request
- ).expect("mListStyleImage could not convert to ComputedImageUrl"))
+ UrlOrNone::Url(ComputedImageUrl::from_image_request(gecko_image_request))
}
}
pub fn set_list_style_type(&mut self, v: longhands::list_style_type::computed_value::T, device: &Device) {
use gecko_bindings::bindings::Gecko_SetCounterStyleToString;
use nsstring::{nsACString, nsCStr};
use self::longhands::list_style_type::computed_value::T;
match v {
@@ -5432,17 +5430,16 @@ clip-path
structs::NS_STYLE_CURSOR_ZOOM_OUT => CursorKind::ZoomOut,
_ => panic!("Found unexpected value in style struct for cursor property"),
};
let images = self.gecko.mCursorImages.iter().map(|gecko_cursor_image| {
let url = unsafe {
let gecko_image_request = gecko_cursor_image.mImage.mRawPtr.as_ref().unwrap();
ComputedImageUrl::from_image_request(&gecko_image_request)
- .expect("mCursorImages.mImage could not convert to ComputedImageUrl")
};
let hotspot =
if gecko_cursor_image.mHaveHotspot {
Some((gecko_cursor_image.mHotspotX, gecko_cursor_image.mHotspotY))
} else {
None
};
@@ -5708,17 +5705,16 @@ clip-path
}
},
eStyleContentType_Image => {
unsafe {
let gecko_image_request =
&**gecko_content.mContent.mImage.as_ref();
ContentItem::Url(
ComputedImageUrl::from_image_request(gecko_image_request)
- .expect("mContent could not convert to ComputedImageUrl")
)
}
},
_ => panic!("Found unexpected value in style struct for content property"),
}
}).collect::<Vec<_>>().into_boxed_slice()
)
}