stylo: handle unresolved url value gracefully

This commit is contained in:
Xidorn Quan 2016-12-21 10:14:44 +11:00
parent fed488cd01
commit 09ce1320e9
3 changed files with 21 additions and 8 deletions

View file

@ -1152,7 +1152,10 @@ fn static_assert() {
Either::Second(_none) => debug_assert!(self.gecko.mBinding.mRawPtr.is_null()),
Either::First(ref url) => {
let extra_data = url.extra_data();
let (ptr, len) = url.as_slice_components();
let (ptr, len) = match url.as_slice_components() {
Ok(value) => value,
Err(_) => (ptr::null(), 0),
};
unsafe {
Gecko_SetMozBinding(&mut self.gecko,
ptr,
@ -1737,7 +1740,9 @@ fn static_assert() {
}
}
Either::First(ref url) => {
let (ptr, len) = url.as_slice_components();
let (ptr, len) = match url.as_slice_components() {
Ok(value) | Err(value) => value
};
let extra_data = url.extra_data();
unsafe {
Gecko_SetListStyleImage(&mut self.gecko,
@ -2433,7 +2438,9 @@ clip-path
for i in 0..v.images.len() {
let image = &v.images[i];
let extra_data = image.url.extra_data();
let (ptr, len) = image.url.as_slice_components();
let (ptr, len) = match image.url.as_slice_components() {
Ok(value) | Err(value) => value,
};
unsafe {
Gecko_SetCursorImage(&mut self.gecko.mCursorImages[i],
ptr, len as u32,