diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-06-26 16:01:23 -0600 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-06-26 16:01:23 -0600 |
commit | aed11dc22c5b56081ddae8f5be29a22afcb488c8 (patch) | |
tree | 9686d33feab4cb4c16e35b169125093b81f19ed0 | |
parent | e6db6ae61f3962b17b6e6b3af6249037484fdf0e (diff) | |
parent | a72c6ec8b60541ee6f8661e96807ee79902ae000 (diff) | |
download | servo-aed11dc22c5b56081ddae8f5be29a22afcb488c8.tar.gz servo-aed11dc22c5b56081ddae8f5be29a22afcb488c8.zip |
Auto merge of #6477 - Ms2ger:vec_from_raw_buf, r=metajack
Stop using Vec::from_raw_buf.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6477)
<!-- Reviewable:end -->
-rw-r--r-- | components/script/dom/bindings/conversions.rs | 6 | ||||
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 15 | ||||
-rw-r--r-- | components/script/lib.rs | 1 |
3 files changed, 10 insertions, 12 deletions
diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index 1f29eeb687d..9967b6cf9b7 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -448,11 +448,11 @@ impl FromJSValConvertible for ByteString { }; assert!(!chars.is_null()); - let char_vec = unsafe { - Vec::from_raw_buf(chars as *mut u8, length as usize) + let char_slice = unsafe { + slice::from_raw_parts(chars as *mut u8, length as usize) }; - return Ok(ByteString::new(char_vec)); + return Ok(ByteString::new(char_slice.to_vec())); } unsafe { diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index d6d2c5b6144..766c61fa57c 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -25,6 +25,7 @@ use js::jsapi::{JS_GetFloat32ArrayData, JS_GetObjectAsArrayBufferView}; use js::jsval::{JSVal, UndefinedValue, NullValue, Int32Value}; use std::mem; use std::ptr; +use std::slice; use std::sync::mpsc::{channel, Sender}; use util::str::DOMString; use offscreen_gl_context::GLContextAttributes; @@ -219,8 +220,7 @@ impl<'a> WebGLRenderingContextMethods for &'a WebGLRenderingContext { Some(data) => data, None => return, }; - let data_vec; - unsafe { + let data_vec = unsafe { let mut length = 0; let mut ptr = ptr::null_mut(); let buffer_data = JS_GetObjectAsArrayBufferView(data, &mut length, &mut ptr); @@ -229,8 +229,8 @@ impl<'a> WebGLRenderingContextMethods for &'a WebGLRenderingContext { } let data_f32 = JS_GetFloat32ArrayData(buffer_data, ptr::null()); let data_vec_length = length / mem::size_of::<f32>() as u32; - data_vec = Vec::from_raw_buf(data_f32, data_vec_length as usize); - } + slice::from_raw_parts(data_f32, data_vec_length as usize).to_vec() + }; self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::BufferData(target, data_vec, usage))).unwrap() } @@ -437,11 +437,10 @@ impl<'a> WebGLRenderingContextMethods for &'a WebGLRenderingContext { None => return, }; - let data_vec: Vec<f32>; - unsafe { + let data_vec = unsafe { let data_f32 = JS_GetFloat32ArrayData(data, ptr::null()); - data_vec = Vec::from_raw_buf(data_f32, 4); - } + slice::from_raw_parts(data_f32, 4).to_vec() + }; self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::Uniform4fv(uniform_id, data_vec))).unwrap() } diff --git a/components/script/lib.rs b/components/script/lib.rs index 28bbed62101..c6456be5d74 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -21,7 +21,6 @@ #![feature(slice_chars)] #![feature(slice_position_elem)] #![feature(str_utf16)] -#![feature(vec_from_raw_buf)] #![feature(vec_push_all)] #![deny(unsafe_code)] |