diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-04-26 05:30:28 -0500 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-04-26 05:30:28 -0500 |
commit | 1389be37823fccf4108f4e79d0a3a793f0bbe93e (patch) | |
tree | 30b2dc45c0aad707848dab7bfc53a3c11e1bdfe8 | |
parent | aef48baeb4a67d003c8a88d91d01d3a33ac3620d (diff) | |
parent | 9185c3de7984fa46b71a62b2902a707c9d4134c3 (diff) | |
download | servo-1389be37823fccf4108f4e79d0a3a793f0bbe93e.tar.gz servo-1389be37823fccf4108f4e79d0a3a793f0bbe93e.zip |
Auto merge of #5847 - Ms2ger:slice, r=SimonSapin
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5847)
<!-- Reviewable:end -->
48 files changed, 122 insertions, 131 deletions
diff --git a/components/canvas/canvas_paint_task.rs b/components/canvas/canvas_paint_task.rs index 79dc45415c5..a13934413ba 100644 --- a/components/canvas/canvas_paint_task.rs +++ b/components/canvas/canvas_paint_task.rs @@ -516,7 +516,7 @@ impl<'a> CanvasPaintTask<'a> { let mut dest_data = self.read_pixels(dest_rect, canvas_size); // bgra -> rgba - byte_swap(dest_data.as_mut_slice()); + byte_swap(&mut dest_data); chan.send(dest_data).unwrap(); } @@ -530,7 +530,7 @@ impl<'a> CanvasPaintTask<'a> { assert!(image_data_rect.size.width * image_data_rect.size.height * 4.0 == imagedata.len() as f64); // rgba -> bgra - byte_swap(imagedata.as_mut_slice()); + byte_swap(&mut imagedata); let image_rect = Rect(Point2D(0f64, 0f64), Size2D(image_data_rect.size.width, image_data_rect.size.height)); diff --git a/components/canvas/webgl_paint_task.rs b/components/canvas/webgl_paint_task.rs index 1afcf20089c..eaa224c22b3 100644 --- a/components/canvas/webgl_paint_task.rs +++ b/components/canvas/webgl_paint_task.rs @@ -100,7 +100,7 @@ impl WebGLPaintTask { gl::RGBA, gl::UNSIGNED_BYTE); // rgba -> bgra - byte_swap(pixels.as_mut_slice()); + byte_swap(&mut pixels); chan.send(pixels).unwrap(); } diff --git a/components/layout/table_wrapper.rs b/components/layout/table_wrapper.rs index cfc2469e443..c603ff47476 100644 --- a/components/layout/table_wrapper.rs +++ b/components/layout/table_wrapper.rs @@ -288,7 +288,7 @@ impl Flow for TableWrapperFlow { TableLayout::Fixed => {} TableLayout::Auto => { self.calculate_table_column_sizes_for_automatic_layout( - intermediate_column_inline_sizes.as_mut_slice()) + &mut intermediate_column_inline_sizes) } } diff --git a/components/net/file_loader.rs b/components/net/file_loader.rs index c2a1d672bd7..9240a736862 100644 --- a/components/net/file_loader.rs +++ b/components/net/file_loader.rs @@ -23,7 +23,7 @@ enum ReadStatus { fn read_block(reader: &mut File) -> Result<ReadStatus, String> { let mut buf = vec![0; READ_SIZE]; - match reader.read(buf.as_mut_slice()) { + match reader.read(&mut buf) { Ok(0) => return Ok(ReadStatus::EOF), Ok(n) => { buf.truncate(n); diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index 0ac6980bb69..5081d9f8dcb 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -56,7 +56,7 @@ enum ReadResult { fn read_block<R: Read>(reader: &mut R) -> Result<ReadResult, ()> { let mut buf = vec![0; 1024]; - match reader.read(buf.as_mut_slice()) { + match reader.read(&mut buf) { Ok(len) if len > 0 => { unsafe { buf.set_len(len); } Ok(ReadResult::Payload(buf)) diff --git a/components/script/dom/attr.rs b/components/script/dom/attr.rs index 536600e5f34..1387131e0f8 100644 --- a/components/script/dom/attr.rs +++ b/components/script/dom/attr.rs @@ -51,7 +51,7 @@ impl AttrValue { } pub fn from_atomic_tokens(atoms: Vec<Atom>) -> AttrValue { - let tokens = atoms.iter().map(Atom::as_slice).collect::<Vec<_>>().connect("\x20"); + let tokens = atoms.iter().map(|x| &**x).collect::<Vec<_>>().connect("\x20"); AttrValue::TokenList(tokens, atoms) } @@ -67,7 +67,7 @@ impl AttrValue { pub fn tokens<'a>(&'a self) -> Option<&'a [Atom]> { match *self { - AttrValue::TokenList(_, ref tokens) => Some(tokens.as_slice()), + AttrValue::TokenList(_, ref tokens) => Some(tokens), _ => None } } @@ -149,7 +149,7 @@ impl Attr { impl<'a> AttrMethods for JSRef<'a, Attr> { // https://dom.spec.whatwg.org/#dom-attr-localname fn LocalName(self) -> DOMString { - self.local_name().as_slice().to_owned() + (**self.local_name()).to_owned() } // https://dom.spec.whatwg.org/#dom-attr-value @@ -191,13 +191,13 @@ impl<'a> AttrMethods for JSRef<'a, Attr> { // https://dom.spec.whatwg.org/#dom-attr-name fn Name(self) -> DOMString { - self.name.as_slice().to_owned() + (*self.name).to_owned() } // https://dom.spec.whatwg.org/#dom-attr-namespaceuri fn GetNamespaceURI(self) -> Option<DOMString> { let Namespace(ref atom) = self.namespace; - match atom.as_slice() { + match &**atom { "" => None, url => Some(url.to_owned()), } @@ -281,7 +281,7 @@ impl<'a> AttrHelpers<'a> for JSRef<'a, Attr> { fn summarize(self) -> AttrInfo { let Namespace(ref ns) = self.namespace; AttrInfo { - namespace: ns.as_slice().to_owned(), + namespace: (**ns).to_owned(), name: self.Name(), value: self.Value(), } @@ -319,7 +319,7 @@ impl AttrHelpersForLayout for Attr { // This transmute is used to cheat the lifetime restriction. let value = mem::transmute::<&AttrValue, &AttrValue>(self.value.borrow_for_layout()); match *value { - AttrValue::TokenList(_, ref tokens) => Some(tokens.as_slice()), + AttrValue::TokenList(_, ref tokens) => Some(tokens), _ => None, } } diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index eb6d7d60680..aa509ad5927 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -312,7 +312,7 @@ impl ToJSValConvertible for str { impl ToJSValConvertible for DOMString { fn to_jsval(&self, cx: *mut JSContext) -> JSVal { - self.as_slice().to_jsval(cx) + (**self).to_jsval(cx) } } diff --git a/components/script/dom/bindings/str.rs b/components/script/dom/bindings/str.rs index 95ee01d8517..fff381e98f8 100644 --- a/components/script/dom/bindings/str.rs +++ b/components/script/dom/bindings/str.rs @@ -30,7 +30,7 @@ impl ByteString { /// Returns the underlying vector as a slice. pub fn as_slice<'a>(&'a self) -> &'a [u8] { let ByteString(ref vector) = *self; - vector.as_slice() + vector } /// Returns the length. diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index bfecd088bbe..47d03d72082 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -70,12 +70,11 @@ impl Blob { //TODO: accept other blobParts types - ArrayBuffer or ArrayBufferView or Blob let bytes: Option<Vec<u8>> = Some(blobParts.into_bytes()); let typeString = if is_ascii_printable(&blobPropertyBag.type_) { - blobPropertyBag.type_.as_slice() + &*blobPropertyBag.type_ } else { "" }; - let typeStrLower = typeString.as_slice().to_ascii_lowercase(); - Ok(Blob::new(global, bytes, typeStrLower.as_slice())) + Ok(Blob::new(global, bytes, &typeString.to_ascii_lowercase())) } } @@ -121,7 +120,7 @@ impl<'a> BlobMethods for JSRef<'a, Blob> { None => "".to_owned(), Some(str) => { if is_ascii_printable(&str) { - str.as_slice().to_ascii_lowercase().to_owned() + str.to_ascii_lowercase() } else { "".to_owned() } @@ -130,13 +129,13 @@ impl<'a> BlobMethods for JSRef<'a, Blob> { let span: i64 = max(relativeEnd - relativeStart, 0); let global = self.global.root(); match self.bytes { - None => Blob::new(global.r(), None, relativeContentType.as_slice()), + None => Blob::new(global.r(), None, &relativeContentType), Some(ref vec) => { let start = relativeStart.to_usize().unwrap(); let end = (relativeStart + span).to_usize().unwrap(); let mut bytes: Vec<u8> = Vec::new(); bytes.push_all(&vec[start..end]); - Blob::new(global.r(), Some(bytes), relativeContentType.as_slice()) + Blob::new(global.r(), Some(bytes), &relativeContentType) } } } diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 022b31dd055..6eeb7d5627d 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -264,10 +264,7 @@ impl CanvasRenderingContext2D { }; // Pixels come from cache in BGRA order and drawImage expects RGBA so we // have to swap the color values - { - let mut pixel_colors = image_data.as_mut_slice(); - byte_swap(pixel_colors); - } + byte_swap(&mut image_data); return Some((image_data, image_size)); } diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs index 4f10e7d39f4..677541045d8 100644 --- a/components/script/dom/characterdata.rs +++ b/components/script/dom/characterdata.rs @@ -112,7 +112,7 @@ impl<'a> CharacterDataMethods for JSRef<'a, CharacterData> { count }; let mut data = self.data.borrow().slice_chars(0, offset as usize).to_owned(); - data.push_str(arg.as_slice()); + data.push_str(&arg); data.push_str(&self.data.borrow().slice_chars((offset + count) as usize, length as usize)); *self.data.borrow_mut() = data; // FIXME: Once we have `Range`, we should implement step7 to step11 diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs index 726a59e3c0d..fd213190e24 100644 --- a/components/script/dom/console.rs +++ b/components/script/dom/console.rs @@ -72,7 +72,7 @@ impl<'a> ConsoleMethods for JSRef<'a, Console> { fn Assert(self, condition: bool, message: Option<DOMString>) { if !condition { let message = match message { - Some(ref message) => message.as_slice(), + Some(ref message) => &**message, None => "no message", }; println!("Assertion failed: {}", message); diff --git a/components/script/dom/create.rs b/components/script/dom/create.rs index 55b2ec8e412..1b8e4b9f2ce 100644 --- a/components/script/dom/create.rs +++ b/components/script/dom/create.rs @@ -86,16 +86,16 @@ pub fn create_element(name: QualName, prefix: Option<DOMString>, document: JSRef<Document>, creator: ElementCreator) -> Temporary<Element> { if name.ns != ns!(HTML) { - return Element::new(name.local.as_slice().to_owned(), name.ns, prefix, document); + return Element::new((*name.local).to_owned(), name.ns, prefix, document); } macro_rules! make( ($ctor:ident) => ({ - let obj = $ctor::new(name.local.as_slice().to_owned(), prefix, document); + let obj = $ctor::new((*name.local).to_owned(), prefix, document); ElementCast::from_temporary(obj) }); ($ctor:ident, $($arg:expr),+) => ({ - let obj = $ctor::new(name.local.as_slice().to_owned(), prefix, document, $($arg),+); + let obj = $ctor::new((*name.local).to_owned(), prefix, document, $($arg),+); ElementCast::from_temporary(obj) }) ); diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index eec797c23cd..e83f9c51bbb 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -1120,7 +1120,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> { fn CreateEvent(self, interface: DOMString) -> Fallible<Temporary<Event>> { let window = self.window.root(); - match interface.to_ascii_lowercase().as_slice() { + match &*interface.to_ascii_lowercase() { "uievents" | "uievent" => Ok(EventCast::from_temporary( UIEvent::new_uninitialized(window.r()))), "mouseevents" | "mouseevent" => Ok(EventCast::from_temporary( diff --git a/components/script/dom/domtokenlist.rs b/components/script/dom/domtokenlist.rs index 119028f6552..2e118089697 100644 --- a/components/script/dom/domtokenlist.rs +++ b/components/script/dom/domtokenlist.rs @@ -81,7 +81,7 @@ impl<'a> DOMTokenListMethods for JSRef<'a, DOMTokenList> { let attr = attr.r(); let value = attr.value(); value.tokens().and_then(|tokens| { - tokens.get(index as usize).map(|token| token.as_slice().to_owned()) + tokens.get(index as usize).map(|token| (**token).to_owned()) }) }) } diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 86c5ad25899..d47cf4feeaa 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -477,7 +477,7 @@ impl<'a> ElementHelpers<'a> for JSRef<'a, Element> { if self.namespace != ns!(HTML) { return false } - match self.local_name.as_slice() { + match &*self.local_name { /* List of void elements from https://html.spec.whatwg.org/multipage/#html-fragment-serialisation-algorithm */ "area" | "base" | "basefont" | "bgsound" | "br" | "col" | "embed" | @@ -752,7 +752,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { let name = match prefix { None => qname.local.clone(), Some(ref prefix) => { - let name = format!("{}:{}", *prefix, qname.local.as_slice()); + let name = format!("{}:{}", *prefix, &*qname.local); Atom::from_slice(&name) }, }; @@ -761,7 +761,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { } fn set_attribute(self, name: &Atom, value: AttrValue) { - assert!(name.as_slice() == name.to_ascii_lowercase()); + assert!(&**name == name.to_ascii_lowercase()); assert!(!name.contains(":")); self.do_set_attribute(name.clone(), value, name.clone(), @@ -883,7 +883,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { } fn set_atomic_attribute(self, local_name: &Atom, value: DOMString) { - assert!(local_name.as_slice() == local_name.to_ascii_lowercase()); + assert!(&**local_name == local_name.to_ascii_lowercase()); let value = AttrValue::from_atomic(value); self.set_attribute(local_name, value); } @@ -909,7 +909,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { } fn get_url_attribute(self, local_name: &Atom) -> DOMString { - assert!(local_name.as_slice() == local_name.to_ascii_lowercase()); + assert!(&**local_name == local_name.to_ascii_lowercase()); if !self.has_attribute(local_name) { return "".to_owned(); } @@ -934,7 +934,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { } } fn set_string_attribute(self, local_name: &Atom, value: DOMString) { - assert!(local_name.as_slice() == local_name.to_ascii_lowercase()); + assert!(&**local_name == local_name.to_ascii_lowercase()); self.set_attribute(local_name, AttrValue::String(value)); } @@ -950,12 +950,12 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { } fn set_tokenlist_attribute(self, local_name: &Atom, value: DOMString) { - assert!(local_name.as_slice() == local_name.to_ascii_lowercase()); + assert!(&**local_name == local_name.to_ascii_lowercase()); self.set_attribute(local_name, AttrValue::from_serialized_tokenlist(value)); } fn set_atomic_tokenlist_attribute(self, local_name: &Atom, tokens: Vec<Atom>) { - assert!(local_name.as_slice() == local_name.to_ascii_lowercase()); + assert!(&**local_name == local_name.to_ascii_lowercase()); self.set_attribute(local_name, AttrValue::from_atomic_tokens(tokens)); } @@ -976,7 +976,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { } } fn set_uint_attribute(self, local_name: &Atom, value: u32) { - assert!(local_name.as_slice() == local_name.to_ascii_lowercase()); + assert!(&**local_name == local_name.to_ascii_lowercase()); self.set_attribute(local_name, AttrValue::UInt(value.to_string(), value)); } } @@ -986,13 +986,13 @@ impl<'a> ElementMethods for JSRef<'a, Element> { fn GetNamespaceURI(self) -> Option<DOMString> { match self.namespace { ns!("") => None, - Namespace(ref ns) => Some(ns.as_slice().to_owned()) + Namespace(ref ns) => Some((**ns).to_owned()) } } // https://dom.spec.whatwg.org/#dom-element-localname fn LocalName(self) -> DOMString { - self.local_name.as_slice().to_owned() + (*self.local_name).to_owned() } // https://dom.spec.whatwg.org/#dom-element-prefix @@ -1004,11 +1004,9 @@ impl<'a> ElementMethods for JSRef<'a, Element> { fn TagName(self) -> DOMString { let qualified_name = match self.prefix { Some(ref prefix) => { - (format!("{}:{}", - prefix.as_slice(), - self.local_name.as_slice())).into_cow() + (format!("{}:{}", &**prefix, &*self.local_name)).into_cow() }, - None => self.local_name.as_slice().into_cow() + None => self.local_name.into_cow() }; if self.html_element_in_html_document() { qualified_name.to_ascii_uppercase() diff --git a/components/script/dom/eventdispatcher.rs b/components/script/dom/eventdispatcher.rs index 1ec656b3428..001d6ce7ace 100644 --- a/components/script/dom/eventdispatcher.rs +++ b/components/script/dom/eventdispatcher.rs @@ -42,9 +42,9 @@ pub fn dispatch_event<'a, 'b>(target: JSRef<'a, EventTarget>, //FIXME: The "callback this value" should be currentTarget /* capturing */ - for cur_target in chain.as_slice().iter().rev() { + for cur_target in chain.iter().rev() { let cur_target = cur_target.root(); - let stopped = match cur_target.r().get_listeners_for(type_.as_slice(), ListenerPhase::Capturing) { + let stopped = match cur_target.r().get_listeners_for(&type_, ListenerPhase::Capturing) { Some(listeners) => { event.set_current_target(cur_target.r()); for listener in listeners.iter() { @@ -71,7 +71,7 @@ pub fn dispatch_event<'a, 'b>(target: JSRef<'a, EventTarget>, event.set_phase(EventPhase::AtTarget); event.set_current_target(target.clone()); - let opt_listeners = target.get_listeners(type_.as_slice()); + let opt_listeners = target.get_listeners(&type_); for listeners in opt_listeners.iter() { for listener in listeners.iter() { // Explicitly drop any exception on the floor. @@ -90,7 +90,7 @@ pub fn dispatch_event<'a, 'b>(target: JSRef<'a, EventTarget>, for cur_target in chain.iter() { let cur_target = cur_target.root(); - let stopped = match cur_target.r().get_listeners_for(type_.as_slice(), ListenerPhase::Bubbling) { + let stopped = match cur_target.r().get_listeners_for(&type_, ListenerPhase::Bubbling) { Some(listeners) => { event.set_current_target(cur_target.r()); for listener in listeners.iter() { diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index 92aabfd0be3..ab0e73ec8de 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -207,7 +207,7 @@ impl<'a> EventTargetHelpers for JSRef<'a, EventTarget> { ['e' as c_char, 'v' as c_char, 'e' as c_char, 'n' as c_char, 't' as c_char, 0]; static mut ARG_NAMES: [*const c_char; 1] = [&ARG_NAME as *const c_char]; - let source: Vec<u16> = source.as_slice().utf16_units().collect(); + let source: Vec<u16> = source.utf16_units().collect(); let handler = unsafe { JS_CompileUCFunction(cx, ptr::null_mut(), @@ -269,7 +269,7 @@ impl<'a> EventTargetMethods for JSRef<'a, EventTarget> { phase: phase, listener: EventListenerType::Additive(listener) }; - if entry.as_slice().position_elem(&new_entry).is_none() { + if entry.position_elem(&new_entry).is_none() { entry.push(new_entry); } }, @@ -291,7 +291,7 @@ impl<'a> EventTargetMethods for JSRef<'a, EventTarget> { phase: phase, listener: EventListenerType::Additive(listener) }; - let position = entry.as_slice().position_elem(&old_entry); + let position = entry.position_elem(&old_entry); for &position in position.iter() { entry.remove(position); } diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs index 63156369459..1fb38160cd2 100644 --- a/components/script/dom/htmlbodyelement.rs +++ b/components/script/dom/htmlbodyelement.rs @@ -89,7 +89,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLBodyElement> { s.after_set_attr(attr); } - let name = attr.local_name().as_slice(); + let name = attr.local_name(); if name.starts_with("on") { static FORWARDED_EVENTS: &'static [&'static str] = &["onfocus", "onload", "onscroll", "onafterprint", "onbeforeprint", @@ -101,7 +101,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLBodyElement> { window.r().get_url(), window.r().reflector().get_jsobject()); let evtarget: JSRef<EventTarget> = - if FORWARDED_EVENTS.iter().any(|&event| name == event) { + if FORWARDED_EVENTS.iter().any(|&event| &**name == event) { EventTargetCast::from_ref(window.r()) } else { EventTargetCast::from_ref(*self) diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs index 7129681ea41..de9433cce18 100644 --- a/components/script/dom/htmlbuttonelement.rs +++ b/components/script/dom/htmlbuttonelement.rs @@ -83,7 +83,7 @@ impl<'a> HTMLButtonElementMethods for JSRef<'a, HTMLButtonElement> { let elem: JSRef<Element> = ElementCast::from_ref(self); let ty = elem.get_string_attribute(&atom!("type")).into_ascii_lowercase(); // https://html.spec.whatwg.org/multipage/#attr-button-type - match ty.as_slice() { + match &*ty { "reset" | "button" | "menu" => ty, _ => "submit".to_owned() } diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index d957648f959..c75b3c5ec3f 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -168,7 +168,7 @@ impl<'a> HTMLCanvasElementMethods for JSRef<'a, HTMLCanvasElement> { } fn GetContext(self, id: DOMString) -> Option<CanvasRenderingContext2DOrWebGLRenderingContext> { - match id.as_slice() { + match &*id { "2d" => { let context_2d = self.context_2d.or_init(|| { let window = window_from_node(self).root(); diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs index a6871bf107f..8e55dd99f2d 100644 --- a/components/script/dom/htmlcollection.rs +++ b/components/script/dom/htmlcollection.rs @@ -193,7 +193,6 @@ impl<'a> HTMLCollectionMethods for JSRef<'a, HTMLCollection> { let index = index as usize; match self.collection { CollectionTypeId::Static(ref elems) => elems - .as_slice() .get(index) .map(|elem| Temporary::new(elem.clone())), CollectionTypeId::Live(ref root, ref filter) => { diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index 12f10e76c3a..8c0445b8ea2 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -186,7 +186,7 @@ fn to_snake_case(name: DOMString) -> DOMString { impl<'a> HTMLElementCustomAttributeHelpers for JSRef<'a, HTMLElement> { fn set_custom_attr(self, name: DOMString, value: DOMString) -> ErrorResult { - if name.as_slice().chars() + if name.chars() .skip_while(|&ch| ch != '\u{2d}') .nth(1).map_or(false, |ch| ch >= 'a' && ch <= 'z') { return Err(Syntax); diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs index 197e8d67b5a..7bd4b7370a9 100644 --- a/components/script/dom/htmlfieldsetelement.rs +++ b/components/script/dom/htmlfieldsetelement.rs @@ -56,7 +56,7 @@ impl<'a> HTMLFieldSetElementMethods for JSRef<'a, HTMLFieldSetElement> { fn filter<'a>(&self, elem: JSRef<'a, Element>, _root: JSRef<'a, Node>) -> bool { static TAG_NAMES: StaticStringVec = &["button", "fieldset", "input", "keygen", "object", "output", "select", "textarea"]; - TAG_NAMES.iter().any(|&tag_name| tag_name == elem.local_name().as_slice()) + TAG_NAMES.iter().any(|&tag_name| tag_name == &**elem.local_name()) } } let node: JSRef<Node> = NodeCast::from_ref(self); diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index 85d9dcd28e9..a10c377771f 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -180,7 +180,7 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> { } // TODO: Resolve the url relative to the submitter element // Step 10-15 - let action_components = UrlParser::new().base_url(&base).parse(action.as_slice()).unwrap_or(base); + let action_components = UrlParser::new().base_url(&base).parse(&action).unwrap_or(base); let _action = action_components.serialize(); let scheme = action_components.scheme.clone(); let enctype = submitter.enctype(); @@ -194,13 +194,13 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> { FormEncType::UrlEncoded => { let mime: mime::Mime = "application/x-www-form-urlencoded".parse().unwrap(); load_data.headers.set(ContentType(mime)); - serialize(form_data.iter().map(|d| (d.name.as_slice(), d.value.as_slice()))) + serialize(form_data.iter().map(|d| (&*d.name, &*d.value))) } _ => "".to_owned() // TODO: Add serializers for the other encoding types }; // Step 18 - match (scheme.as_slice(), method) { + match (&*scheme, method) { (_, FormMethod::FormDialog) => return, // Unimplemented ("http", FormMethod::FormGet) | ("https", FormMethod::FormGet) => { load_data.url.query = Some(parsed_data); @@ -269,7 +269,7 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> { let input = HTMLInputElementCast::to_ref(child.r()).unwrap(); let ty = input.Type(); let name = input.Name(); - match ty.as_slice() { + match &*ty { "radio" | "checkbox" => { if !input.Checked() || name.is_empty() { return None; @@ -290,7 +290,7 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> { }, _ => false }; - match ty.as_slice() { + match &*ty { "image" => None, // Unimplemented "radio" | "checkbox" => { if value.is_empty() { @@ -335,11 +335,11 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> { // https://html.spec.whatwg.org/multipage/#the-directionality let mut ret: Vec<FormDatum> = data_set.collect(); for datum in ret.iter_mut() { - match datum.ty.as_slice() { + match &*datum.ty { "file" | "textarea" => (), _ => { - datum.name = clean_crlf(datum.name.as_slice()); - datum.value = clean_crlf(datum.value.as_slice()); + datum.name = clean_crlf(&datum.name); + datum.value = clean_crlf(&datum.value); } } }; @@ -462,7 +462,7 @@ impl<'a> FormSubmitter<'a> { |f| f.Action()) } }; - match attr.as_slice() { + match &*attr { "multipart/form-data" => FormEncType::FormDataEncoded, "text/plain" => FormEncType::TextPlainEncoded, // https://html.spec.whatwg.org/multipage/#attr-fs-enctype @@ -486,7 +486,7 @@ impl<'a> FormSubmitter<'a> { |f| f.Action()) } }; - match attr.as_slice() { + match &*attr { "dialog" => FormMethod::FormDialog, "post" => FormMethod::FormPost, _ => FormMethod::FormGet diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 08465fdf9aa..7327a6131f9 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -335,7 +335,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLIFrameElement> { let mut modes = SandboxAllowance::AllowNothing as u8; if let Some(ref tokens) = attr.value().tokens() { for token in tokens.iter() { - modes |= match token.as_slice().to_ascii_lowercase().as_slice() { + modes |= match &*token.to_ascii_lowercase() { "allow-same-origin" => SandboxAllowance::AllowSameOrigin, "allow-forms" => SandboxAllowance::AllowForms, "allow-pointer-lock" => SandboxAllowance::AllowPointerLock, diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index b206ba44b38..47d7ce55bd0 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -116,7 +116,7 @@ impl<'a> PrivateHTMLImageElementHelpers for JSRef<'a, HTMLImageElement> { *self.image.borrow_mut() = None; } Some((src, base_url)) => { - let img_url = UrlParser::new().base_url(base_url).parse(src.as_slice()); + let img_url = UrlParser::new().base_url(base_url).parse(&src); // FIXME: handle URL parse errors more gracefully. let img_url = img_url.unwrap(); *self.url.borrow_mut() = Some(img_url.clone()); diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index 98272a1b8d4..a34357c37b1 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -372,7 +372,7 @@ fn in_same_group<'a,'b>(other: JSRef<'a, HTMLInputElement>, other_owner.equals(owner) && // TODO should be a unicode compatibility caseless match match (other.get_radio_group_name(), group) { - (Some(ref s1), Some(s2)) => s1.as_slice() == s2, + (Some(ref s1), Some(s2)) => &**s1 == s2, (None, None) => true, _ => false } @@ -410,7 +410,7 @@ impl<'a> HTMLInputElementHelpers for JSRef<'a, HTMLInputElement> { broadcast_radio_checked(self, self.get_radio_group_name() .as_ref() - .map(|group| group.as_slice())); + .map(|group| &**group)); } //TODO: dispatch change event } @@ -492,7 +492,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLInputElement> { if self.input_type.get() == InputType::InputRadio { self.radio_group_updated(self.get_radio_group_name() .as_ref() - .map(|group| group.as_slice())); + .map(|group| &**group)); } } &atom!("value") => { @@ -543,7 +543,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLInputElement> { broadcast_radio_checked(*self, self.get_radio_group_name() .as_ref() - .map(|group| group.as_slice())); + .map(|group| &**group)); } self.input_type.set(InputType::InputText); } @@ -598,7 +598,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLInputElement> { s.handle_event(event); } - if "click" == event.Type().as_slice() && !event.DefaultPrevented() { + if &*event.Type() == "click" && !event.DefaultPrevented() { match self.input_type.get() { InputType::InputRadio => self.update_checked_state(true, true), _ => {} @@ -611,7 +611,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLInputElement> { let doc = document_from_node(*self).root(); doc.r().request_focus(ElementCast::from_ref(*self)); - } else if "keydown" == event.Type().as_slice() && !event.DefaultPrevented() && + } else if &*event.Type() == "keydown" && !event.DefaultPrevented() && (self.input_type.get() == InputType::InputText || self.input_type.get() == InputType::InputPassword) { let keyevent: Option<JSRef<KeyboardEvent>> = KeyboardEventCast::to_ref(event); @@ -690,7 +690,7 @@ impl<'a> Activatable for JSRef<'a, HTMLInputElement> { .filter_map(HTMLInputElementCast::to_temporary) .map(|t| t.root()) .find(|r| { - in_same_group(r.r(), owner.r(), group.as_ref().map(|gr| gr.as_slice())) && + in_same_group(r.r(), owner.r(), group.as_ref().map(|gr| &**gr)) && r.r().Checked() }) }; diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index d23fc5fc250..c1b455ccf49 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -70,8 +70,8 @@ fn get_attr(element: JSRef<Element>, local_name: &Atom) -> Option<String> { fn is_stylesheet(value: &Option<String>) -> bool { match *value { Some(ref value) => { - value.as_slice().split(HTML_SPACE_CHARACTERS.as_slice()) - .any(|s| s.as_slice().eq_ignore_ascii_case("stylesheet")) + value.split(HTML_SPACE_CHARACTERS) + .any(|s| s.eq_ignore_ascii_case("stylesheet")) }, None => false, } @@ -126,7 +126,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLLinkElement> { match (rel, href) { (ref rel, Some(ref href)) if is_stylesheet(rel) => { - self.handle_stylesheet_url(href.as_slice()); + self.handle_stylesheet_url(href); } _ => {} } diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs index 4607012a682..fe68c61e70f 100644 --- a/components/script/dom/htmloptionelement.rs +++ b/components/script/dom/htmloptionelement.rs @@ -51,7 +51,7 @@ impl HTMLOptionElement { fn collect_text(node: &JSRef<Node>, value: &mut DOMString) { let elem: JSRef<Element> = ElementCast::to_ref(*node).unwrap(); - let svg_script = *elem.namespace() == ns!(SVG) && elem.local_name().as_slice() == "script"; + let svg_script = *elem.namespace() == ns!(SVG) && elem.local_name() == &atom!("script"); let html_script = node.is_htmlscriptelement(); if svg_script || html_script { return; @@ -60,7 +60,7 @@ fn collect_text(node: &JSRef<Node>, value: &mut DOMString) { let child = child.root(); if child.r().is_text() { let characterdata: JSRef<CharacterData> = CharacterDataCast::to_ref(child.r()).unwrap(); - value.push_str(characterdata.Data().as_slice()); + value.push_str(&characterdata.Data()); } else { collect_text(&child.r(), value); } @@ -83,7 +83,7 @@ impl<'a> HTMLOptionElementMethods for JSRef<'a, HTMLOptionElement> { let node: JSRef<Node> = NodeCast::from_ref(self); let mut content = String::new(); collect_text(&node, &mut content); - let v: Vec<&str> = split_html_space_chars(content.as_slice()).collect(); + let v: Vec<&str> = split_html_space_chars(&content).collect(); v.connect(" ") } diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index b6066e7b746..d1c16a5d7a2 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -414,7 +414,7 @@ impl<'a> HTMLScriptElementHelpers for JSRef<'a, HTMLScriptElement> { }, Some(ref s) => { debug!("script type={}", *s); - SCRIPT_JS_MIMES.contains(&s.to_ascii_lowercase().as_slice().trim_matches(HTML_SPACE_CHARACTERS)) + SCRIPT_JS_MIMES.contains(&s.to_ascii_lowercase().trim_matches(HTML_SPACE_CHARACTERS)) }, None => { debug!("no script type"); @@ -427,7 +427,7 @@ impl<'a> HTMLScriptElementHelpers for JSRef<'a, HTMLScriptElement> { }, Some(ref s) => { debug!("script language={}", *s); - SCRIPT_JS_MIMES.contains(&format!("text/{}", s).to_ascii_lowercase().as_slice()) + SCRIPT_JS_MIMES.contains(&&*format!("text/{}", s).to_ascii_lowercase()) }, None => { debug!("no script type or language, inferring js"); diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs index e7eb266b023..ccbe79e21ef 100644 --- a/components/script/dom/htmlstyleelement.rs +++ b/components/script/dom/htmlstyleelement.rs @@ -64,7 +64,7 @@ impl<'a> StyleElementHelpers for JSRef<'a, HTMLStyleElement> { let media = parse_media_query_list(&mut css_parser); let data = node.GetTextContent().expect("Element.textContent must be a string"); - let sheet = Stylesheet::from_str(data.as_slice(), url, Origin::Author); + let sheet = Stylesheet::from_str(&data, url, Origin::Author); let LayoutChan(ref layout_chan) = win.layout_chan(); layout_chan.send(Msg::AddStylesheet(sheet, media)).unwrap(); } diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index 738c906e91b..936c67ae6a9 100644 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -344,12 +344,12 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTextAreaElement> { s.handle_event(event); } - if "click" == event.Type().as_slice() && !event.DefaultPrevented() { + if &*event.Type() == "click" && !event.DefaultPrevented() { //TODO: set the editing position for text inputs let doc = document_from_node(*self).root(); doc.r().request_focus(ElementCast::from_ref(*self)); - } else if "keydown" == event.Type().as_slice() && !event.DefaultPrevented() { + } else if &*event.Type() == "keydown" && !event.DefaultPrevented() { let keyevent: Option<JSRef<KeyboardEvent>> = KeyboardEventCast::to_ref(event); keyevent.map(|kevent| { match self.textinput.borrow_mut().handle_keydown(kevent) { diff --git a/components/script/dom/keyboardevent.rs b/components/script/dom/keyboardevent.rs index d9ca779edc3..f6777cc258a 100644 --- a/components/script/dom/keyboardevent.rs +++ b/components/script/dom/keyboardevent.rs @@ -615,7 +615,7 @@ impl<'a> KeyboardEventMethods for JSRef<'a, KeyboardEvent> { // https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#widl-KeyboardEvent-getModifierState fn GetModifierState(self, keyArg: DOMString) -> bool { - match keyArg.as_slice() { + match &*keyArg { "Ctrl" => self.CtrlKey(), "Alt" => self.AltKey(), "Shift" => self.ShiftKey(), diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs index 37d0dad7f2a..76157789e71 100644 --- a/components/script/dom/macros.rs +++ b/components/script/dom/macros.rs @@ -85,7 +85,7 @@ macro_rules! make_url_or_base_getter( use std::ascii::AsciiExt; let element: JSRef<Element> = ElementCast::from_ref(self); let url = element.get_url_attribute(&Atom::from_slice($htmlname)); - match url.as_slice() { + match &*url { "" => { let window = window_from_node(self).root(); window.r().get_url().serialize() @@ -112,14 +112,14 @@ macro_rules! make_enumerated_getter( let val = element.get_string_attribute(&Atom::from_slice($htmlname)) .into_ascii_lowercase(); // https://html.spec.whatwg.org/multipage/#attr-fs-method - match val.as_slice() { + match &*val { $($choices)|+ => val, _ => $default.to_owned() } } ); ($attr:ident, $default:expr, $(($choices: pat))|+) => { - make_enumerated_getter!($attr, to_lower!(stringify!($attr)).as_slice(), $default, $(($choices))|+); + make_enumerated_getter!($attr, &to_lower!(stringify!($attr)), $default, $(($choices))|+); } ); diff --git a/components/script/dom/namednodemap.rs b/components/script/dom/namednodemap.rs index 39474f32339..b0c7261e294 100644 --- a/components/script/dom/namednodemap.rs +++ b/components/script/dom/namednodemap.rs @@ -52,7 +52,7 @@ impl<'a> NamedNodeMapMethods for JSRef<'a, NamedNodeMap> { // FIXME(https://github.com/rust-lang/rust/issues/23338) let owner = owner.r(); let attrs = owner.attrs(); - attrs.as_slice().get(index as usize).map(|x| Temporary::new(x.clone())) + attrs.get(index as usize).map(|x| Temporary::new(x.clone())) } // https://dom.spec.whatwg.org/#dom-namednodemap-getnameditem diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index b8920f1adc0..8037454d5dc 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -544,7 +544,7 @@ impl<'a> NodeHelpers for JSRef<'a, Node> { s.push_str(" "); } - s.push_str(self.debug_str().as_slice()); + s.push_str(&*self.debug_str()); debug!("{:?}", s); // FIXME: this should have a pure version? @@ -888,7 +888,7 @@ impl<'a> NodeHelpers for JSRef<'a, Node> { // https://dom.spec.whatwg.org/#dom-parentnode-queryselector fn query_selector(self, selectors: DOMString) -> Fallible<Option<Temporary<Element>>> { // Step 1. - match parse_author_origin_selector_list_from_str(selectors.as_slice()) { + match parse_author_origin_selector_list_from_str(&selectors) { // Step 2. Err(()) => return Err(Syntax), // Step 3. @@ -909,7 +909,7 @@ impl<'a> NodeHelpers for JSRef<'a, Node> { unsafe fn query_selector_iter(self, selectors: DOMString) -> Fallible<QuerySelectorIterator> { // Step 1. - match parse_author_origin_selector_list_from_str(selectors.as_slice()) { + match parse_author_origin_selector_list_from_str(&selectors) { // Step 2. Err(()) => Err(Syntax), // Step 3. @@ -1734,7 +1734,7 @@ impl Node { local: element.local_name().clone() }; let element = Element::create(name, - element.prefix().as_ref().map(|p| p.as_slice().to_owned()), + element.prefix().as_ref().map(|p| (**p).to_owned()), document.r(), ElementCreator::ScriptCreated); NodeCast::from_temporary(element) }, diff --git a/components/script/dom/textencoder.rs b/components/script/dom/textencoder.rs index 4f1045cc7ac..91a02257d71 100644 --- a/components/script/dom/textencoder.rs +++ b/components/script/dom/textencoder.rs @@ -50,7 +50,7 @@ impl TextEncoder { // https://encoding.spec.whatwg.org/#dom-textencoder pub fn Constructor(global: GlobalRef, label: DOMString) -> Fallible<Temporary<TextEncoder>> { - let encoding = match encoding_from_whatwg_label(label.trim().as_slice().to_ascii_lowercase().as_slice()) { + let encoding = match encoding_from_whatwg_label(&label.trim().to_ascii_lowercase()) { Some(enc) => enc, None => { debug!("Encoding Label Not Supported"); @@ -80,7 +80,7 @@ impl<'a> TextEncoderMethods for JSRef<'a, TextEncoder> { #[allow(unsafe_code)] fn Encode(self, cx: *mut JSContext, input: USVString) -> *mut JSObject { unsafe { - let output = self.encoder.encode(input.0.as_slice(), EncoderTrap::Strict).unwrap(); + let output = self.encoder.encode(&input.0, EncoderTrap::Strict).unwrap(); let length = output.len() as u32; let js_object: *mut JSObject = JS_NewUint8Array(cx, length); diff --git a/components/script/dom/urlhelper.rs b/components/script/dom/urlhelper.rs index 4a86c75a722..d1930734f5c 100644 --- a/components/script/dom/urlhelper.rs +++ b/components/script/dom/urlhelper.rs @@ -20,7 +20,7 @@ impl UrlHelper { pub fn Search(url: &Url) -> USVString { USVString(match url.query { None => "".to_owned(), - Some(ref query) if query.as_slice() == "" => "".to_owned(), + Some(ref query) if query.is_empty() => "".to_owned(), Some(ref query) => format!("?{}", query) }) } @@ -29,7 +29,7 @@ impl UrlHelper { pub fn Hash(url: &Url) -> USVString { USVString(match url.fragment { None => "".to_owned(), - Some(ref hash) if hash.as_slice() == "" => "".to_owned(), + Some(ref hash) if hash.is_empty() => "".to_owned(), Some(ref hash) => format!("#{}", hash) }) } diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs index 1e418c4b6f8..d94a5d0f185 100644 --- a/components/script/dom/urlsearchparams.rs +++ b/components/script/dom/urlsearchparams.rs @@ -116,10 +116,9 @@ pub trait URLSearchParamsHelpers { impl URLSearchParamsHelpers for URLSearchParams { fn serialize(&self, encoding: Option<EncodingRef>) -> Vec<u8> { // https://url.spec.whatwg.org/#concept-urlencoded-serializer - fn serialize_string(value: &DOMString, encoding: EncodingRef) -> Vec<u8> { + fn serialize_string(value: &str, encoding: EncodingRef) -> Vec<u8> { // https://url.spec.whatwg.org/#concept-urlencoded-byte-serializer - let value = value.as_slice(); // XXXManishearth should this be a strict encoding? Can unwrap()ing the result fail? let value = encoding.encode(value, EncoderTrap::Replace).unwrap(); diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index a19e071687e..ec98dfff19f 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -253,7 +253,7 @@ pub fn base64_btoa(input: DOMString) -> Fallible<DOMString> { // "and then must apply the base64 algorithm to that sequence of // octets, and return the result. [RFC4648]" - Ok(octets.as_slice().to_base64(STANDARD)) + Ok(octets.to_base64(STANDARD)) } } @@ -269,7 +269,7 @@ pub fn base64_atob(input: DOMString) -> Fallible<DOMString> { let without_spaces = input.chars() .filter(|&c| ! is_html_space(c)) .collect::<String>(); - let mut input = without_spaces.as_slice(); + let mut input = &*without_spaces; // "If the length of input divides by 4 leaving no remainder, then: // if input ends with one or two U+003D EQUALS SIGN (=) characters, @@ -520,7 +520,7 @@ impl<'a, T: Reflectable> ScriptHelpers for JSRef<'a, T> { let this = self.reflector().get_jsobject(); let cx = global_object_for_js_object(this).root().r().get_cx(); let global = global_object_for_js_object(this).root().r().reflector().get_jsobject(); - let code: Vec<u16> = code.as_slice().utf16_units().collect(); + let code: Vec<u16> = code.utf16_units().collect(); let mut rval = UndefinedValue(); let filename = CString::new(filename).unwrap(); diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs index e80d5529115..a36dee9a164 100644 --- a/components/script/dom/worker.rs +++ b/components/script/dom/worker.rs @@ -63,8 +63,7 @@ impl Worker { // https://www.whatwg.org/html/#dom-worker pub fn Constructor(global: GlobalRef, script_url: DOMString) -> Fallible<Temporary<Worker>> { // Step 2-4. - let worker_url = match UrlParser::new().base_url(&global.get_url()) - .parse(script_url.as_slice()) { + let worker_url = match UrlParser::new().base_url(&global.get_url()).parse(&script_url) { Ok(url) => url, Err(_) => return Err(Syntax), }; diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index bbb81f369dd..170dd317c7b 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -122,7 +122,7 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> { let mut urls = Vec::with_capacity(url_strings.len()); for url in url_strings.into_iter() { let url = UrlParser::new().base_url(&self.worker_url) - .parse(url.as_slice()); + .parse(&url); match url { Ok(url) => urls.push(url), Err(_) => return Err(Syntax), diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index a4e9e767dd5..ffb0b2e17f5 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -252,7 +252,7 @@ impl XMLHttpRequest { } fn data_available(&self, payload: Vec<u8>) { - self.buf.borrow_mut().push_all(payload.as_slice()); + self.buf.borrow_mut().push_all(&payload); let xhr = self.xhr.to_temporary().root(); xhr.r().process_data_available(self.gen_id, self.buf.borrow().clone()); } @@ -297,7 +297,7 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> { // since methods like "patch" or "PaTcH" will be considered extension methods // despite the there being a rust-http method variant for them let upper = s.to_ascii_uppercase(); - match upper.as_slice() { + match &*upper { "DELETE" | "GET" | "HEAD" | "OPTIONS" | "POST" | "PUT" | "CONNECT" | "TRACE" | "TRACK" => upper.parse().ok(), @@ -308,7 +308,7 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> { match maybe_method { // Step 4 Some(Method::Connect) | Some(Method::Trace) => Err(Security), - Some(Method::Extension(ref t)) if t.as_slice() == "TRACK" => Err(Security), + Some(Method::Extension(ref t)) if &**t == "TRACK" => Err(Security), Some(parsed_method) => { // Step 3 if !method.is_token() { @@ -319,7 +319,7 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> { // Step 6 let base = self.global.root().r().get_url(); - let parsed_url = match UrlParser::new().base_url(&base).parse(url.as_slice()) { + let parsed_url = match UrlParser::new().base_url(&base).parse(&url) { Ok(parsed) => parsed, Err(_) => return Err(Syntax) // Step 7 }; @@ -562,14 +562,14 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> { match cors_request { Ok(None) => { let mut buf = String::new(); - buf.push_str(referer_url.scheme.as_slice()); - buf.push_str("://".as_slice()); - referer_url.serialize_host().map(|ref h| buf.push_str(h.as_slice())); + buf.push_str(&referer_url.scheme); + buf.push_str("://"); + referer_url.serialize_host().map(|ref h| buf.push_str(h)); referer_url.port().as_ref().map(|&p| { - buf.push_str(":".as_slice()); - buf.push_str(p.to_string().as_slice()); + buf.push_str(":"); + buf.push_str(&p.to_string()); }); - referer_url.serialize_path().map(|ref h| buf.push_str(h.as_slice())); + referer_url.serialize_path().map(|ref h| buf.push_str(h)); self.request_headers.borrow_mut().set_raw("Referer".to_owned(), vec![buf.into_bytes()]); }, Ok(Some(ref req)) => self.insert_trusted_header("origin".to_owned(), @@ -678,7 +678,7 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> { _ if self.ready_state.get() != XMLHttpRequestState::Done => NullValue(), Json => { let decoded = UTF_8.decode(self.response.borrow().as_slice(), DecoderTrap::Replace).unwrap().to_owned(); - let decoded: Vec<u16> = decoded.as_slice().utf16_units().collect(); + let decoded: Vec<u16> = decoded.utf16_units().collect(); let mut vp = UndefinedValue(); unsafe { if JS_ParseJSON(cx, decoded.as_ptr(), decoded.len() as u32, &mut vp) == 0 { @@ -1015,7 +1015,7 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> { Some(&ContentType(mime::Mime(_, _, ref params))) => { for &(ref name, ref value) in params.iter() { if name == &mime::Attr::Charset { - encoding = encoding_from_whatwg_label(value.to_string().as_slice()).unwrap_or(encoding); + encoding = encoding_from_whatwg_label(&value.to_string()).unwrap_or(encoding); } } }, @@ -1127,7 +1127,7 @@ impl Extractable for SendParam { // https://fetch.spec.whatwg.org/#concept-fetchbodyinit-extract let encoding = UTF_8 as EncodingRef; match *self { - eString(ref s) => encoding.encode(s.as_slice(), EncoderTrap::Replace).unwrap(), + eString(ref s) => encoding.encode(s, EncoderTrap::Replace).unwrap(), eURLSearchParams(ref usp) => usp.root().r().serialize(None) // Default encoding is UTF8 } } diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs index e67624441fe..21a37505b53 100644 --- a/components/script/parse/html.rs +++ b/components/script/parse/html.rs @@ -244,7 +244,7 @@ impl<'a> Serializable for JSRef<'a, Node> { (IncludeNode, NodeTypeId::DocumentType) => { let doctype: JSRef<DocumentType> = DocumentTypeCast::to_ref(node).unwrap(); - serializer.write_doctype(doctype.name().as_slice()) + serializer.write_doctype(&doctype.name()) }, (IncludeNode, NodeTypeId::Text) => { @@ -290,7 +290,7 @@ pub fn parse_html(document: JSRef<Document>, match msg { ProgressMsg::Payload(data) => { // FIXME: use Vec<u8> (html5ever #34) - let data = UTF_8.decode(data.as_slice(), DecoderTrap::Replace).unwrap(); + let data = UTF_8.decode(&data, DecoderTrap::Replace).unwrap(); parser.parse_chunk(data); } ProgressMsg::Done(Err(err)) => { diff --git a/components/script/textinput.rs b/components/script/textinput.rs index 33c8ce90665..6b2053af3be 100644 --- a/components/script/textinput.rs +++ b/components/script/textinput.rs @@ -291,7 +291,7 @@ impl TextInput { } return Selection::NotSelected } - match event.Key().as_slice() { + match &*event.Key() { "a" if is_control_key(event) => { self.select_all(); KeyReaction::Nothing @@ -304,7 +304,7 @@ impl TextInput { contents = Some(rx.recv().unwrap()); } if let Some(contents) = contents { - self.insert_string(contents.as_slice()); + self.insert_string(&contents); } KeyReaction::DispatchInput }, diff --git a/components/script/timers.rs b/components/script/timers.rs index d0cb849b0a8..d54a77c9951 100644 --- a/components/script/timers.rs +++ b/components/script/timers.rs @@ -238,7 +238,7 @@ impl TimerManager { let _ = function.Call_(this, data.args, Report); } TimerCallback::StringTimerCallback(code_str) => { - this.evaluate_js_on_global_with_result(code_str.as_slice()); + this.evaluate_js_on_global_with_result(&code_str); } }; diff --git a/ports/gonk/src/input.rs b/ports/gonk/src/input.rs index 1ca7fd763f3..54e54b87784 100644 --- a/ports/gonk/src/input.rs +++ b/ports/gonk/src/input.rs @@ -139,7 +139,7 @@ fn read_input_device(device_path: &Path, // XXX: Need to use the real dimensions of the screen let screen_dist = dist(0, 480, 854, 0); loop { - let read = match device.read(buf.as_mut_slice()) { + let read = match device.read(&mut buf) { Ok(count) => { assert!(count % size_of::<linux_input_event>() == 0, "Unexpected input device read length!"); |