aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-06-26 16:01:23 -0600
committerbors-servo <metajack+bors@gmail.com>2015-06-26 16:01:23 -0600
commitaed11dc22c5b56081ddae8f5be29a22afcb488c8 (patch)
tree9686d33feab4cb4c16e35b169125093b81f19ed0
parente6db6ae61f3962b17b6e6b3af6249037484fdf0e (diff)
parenta72c6ec8b60541ee6f8661e96807ee79902ae000 (diff)
downloadservo-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.rs6
-rw-r--r--components/script/dom/webglrenderingcontext.rs15
-rw-r--r--components/script/lib.rs1
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)]