mirror of
https://github.com/servo/servo.git
synced 2025-06-12 10:24:43 +00:00
Use util::str::str_join in more places
Instead of intermediate allocations of `Vec`s, we should utilize `str_join` which operates on iterators
This commit is contained in:
parent
2857e547be
commit
f14f09e886
4 changed files with 7 additions and 10 deletions
|
@ -15,11 +15,10 @@ use selectors::parser::PseudoElement;
|
|||
use std::ascii::AsciiExt;
|
||||
use std::borrow::ToOwned;
|
||||
use std::cell::Ref;
|
||||
use std::slice::SliceConcatExt;
|
||||
use string_cache::Atom;
|
||||
use style::properties::PropertyDeclaration;
|
||||
use style::properties::{is_supported_property, longhands_from_shorthand, parse_one_declaration};
|
||||
use util::str::DOMString;
|
||||
use util::str::{DOMString, str_join};
|
||||
|
||||
// http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface
|
||||
#[dom_struct]
|
||||
|
@ -50,8 +49,8 @@ macro_rules! css_properties(
|
|||
);
|
||||
|
||||
fn serialize_list(list: &[Ref<PropertyDeclaration>]) -> DOMString {
|
||||
let strings: Vec<_> = list.iter().map(|d| d.value()).collect();
|
||||
strings.join(" ")
|
||||
let str_iter = list.iter().map(|d| d.value());
|
||||
str_join(str_iter, " ")
|
||||
}
|
||||
|
||||
impl CSSStyleDeclaration {
|
||||
|
|
|
@ -98,7 +98,7 @@ use std::sync::mpsc::channel;
|
|||
use string_cache::{Atom, QualName};
|
||||
use time;
|
||||
use url::Url;
|
||||
use util::str::{DOMString, split_html_space_chars};
|
||||
use util::str::{DOMString, split_html_space_chars, str_join};
|
||||
|
||||
#[derive(JSTraceable, PartialEq, HeapSizeOf)]
|
||||
pub enum IsHTMLDocument {
|
||||
|
@ -1443,7 +1443,7 @@ impl DocumentMethods for Document {
|
|||
Some(ref title) => {
|
||||
// Steps 3-4.
|
||||
let value = Node::collect_text_contents(title.r().children());
|
||||
split_html_space_chars(&value).collect::<Vec<_>>().join(" ")
|
||||
str_join(split_html_space_chars(&value), " ")
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
|
|||
use dom::node::{Node, NodeTypeId};
|
||||
use dom::virtualmethods::VirtualMethods;
|
||||
use std::cell::Cell;
|
||||
use util::str::{DOMString, split_html_space_chars};
|
||||
use util::str::{DOMString, split_html_space_chars, str_join};
|
||||
|
||||
#[dom_struct]
|
||||
pub struct HTMLOptionElement {
|
||||
|
@ -93,8 +93,7 @@ impl HTMLOptionElementMethods for HTMLOptionElement {
|
|||
let node = NodeCast::from_ref(self);
|
||||
let mut content = String::new();
|
||||
collect_text(&node, &mut content);
|
||||
let v: Vec<&str> = split_html_space_chars(&content).collect();
|
||||
v.join(" ")
|
||||
str_join(split_html_space_chars(&content), " ")
|
||||
}
|
||||
|
||||
// https://www.whatwg.org/html/#dom-option-text
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#![feature(str_utf16)]
|
||||
#![feature(unicode)]
|
||||
#![feature(vec_push_all)]
|
||||
#![feature(slice_concat_ext)]
|
||||
|
||||
#![deny(unsafe_code)]
|
||||
#![allow(non_snake_case)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue