Bug 1362115 - properly handle empty slices in FFI bindings. r?kats
MozReview-Commit-ID: 9Zw0RTbgsBL
--- a/gfx/webrender_bindings/src/bindings.rs
+++ b/gfx/webrender_bindings/src/bindings.rs
@@ -173,17 +173,17 @@ pub extern "C" fn wr_vec_u8_free(v: WrVe
pub struct ByteSlice {
buffer: *const u8,
len: usize,
}
impl ByteSlice {
pub fn new(slice: &[u8]) -> ByteSlice {
ByteSlice {
- buffer: &slice[0],
+ buffer: slice.as_ptr(),
len: slice.len(),
}
}
pub fn as_slice(&self) -> &[u8] {
make_slice(self.buffer, self.len)
}
}
@@ -193,17 +193,17 @@ pub struct MutByteSlice {
buffer: *mut u8,
len: usize,
}
impl MutByteSlice {
pub fn new(slice: &mut [u8]) -> MutByteSlice {
let len = slice.len();
MutByteSlice {
- buffer: &mut slice[0],
+ buffer: slice.as_mut_ptr(),
len: len,
}
}
pub fn as_mut_slice(&mut self) -> &mut [u8] {
make_slice_mut(self.buffer, self.len)
}
}