diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-01-19 09:12:46 -0700 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-01-19 09:12:46 -0700 |
commit | d747a33df9c167a3defbbdcfe356ee25eeb672ad (patch) | |
tree | 9232a3a92d84f71b65780a23ff0aec97836bef30 | |
parent | ee94b3e8bf659c847bda967700272f8f98fdb0cc (diff) | |
parent | 05c4e3b9f51df868352a137ff211e9ef62e85592 (diff) | |
download | servo-d747a33df9c167a3defbbdcfe356ee25eeb672ad.tar.gz servo-d747a33df9c167a3defbbdcfe356ee25eeb672ad.zip |
auto merge of #4664 : Ms2ger/servo/from_elem, r=larsbergstrom
It is obsolete on Rust master.
-rw-r--r-- | components/gfx/text/glyph.rs | 4 | ||||
-rw-r--r-- | components/gfx/text/shaping/harfbuzz.rs | 6 | ||||
-rw-r--r-- | components/layout/display_list_builder.rs | 3 | ||||
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 7 | ||||
-rw-r--r-- | components/util/cache.rs | 3 |
5 files changed, 15 insertions, 8 deletions
diff --git a/components/gfx/text/glyph.rs b/components/gfx/text/glyph.rs index a991f147bed..06e16c04a79 100644 --- a/components/gfx/text/glyph.rs +++ b/components/gfx/text/glyph.rs @@ -8,6 +8,7 @@ use servo_util::range::{Range, RangeIndex, EachIndex}; use servo_util::geometry::Au; use std::cmp::PartialOrd; +use std::iter::repeat; use std::num::NumCast; use std::mem; use std::u16; @@ -526,7 +527,8 @@ impl<'a> GlyphStore { assert!(length > 0); GlyphStore { - entry_buffer: Vec::from_elem(length as uint, GlyphEntry::initial()), + entry_buffer: repeat(GlyphEntry::initial()).take(length as uint) + .collect(), detail_store: DetailedGlyphStore::new(), is_whitespace: is_whitespace, } diff --git a/components/gfx/text/shaping/harfbuzz.rs b/components/gfx/text/shaping/harfbuzz.rs index cc328ca4f8c..fb5d83b6457 100644 --- a/components/gfx/text/shaping/harfbuzz.rs +++ b/components/gfx/text/shaping/harfbuzz.rs @@ -43,6 +43,7 @@ use libc::{c_uint, c_int, c_void, c_char}; use servo_util::geometry::Au; use servo_util::range::Range; use std::char; +use std::iter::repeat; use std::mem; use std::cmp; use std::ptr; @@ -295,9 +296,10 @@ impl Shaper { // fast path: all chars are single-byte. if byte_max == char_max { - byte_to_glyph = Vec::from_elem(byte_max as uint, NO_GLYPH); + byte_to_glyph = repeat(NO_GLYPH).take(byte_max as uint).collect(); } else { - byte_to_glyph = Vec::from_elem(byte_max as uint, CONTINUATION_BYTE); + byte_to_glyph = repeat(CONTINUATION_BYTE).take(byte_max as uint) + .collect(); for (i, _) in text.char_indices() { byte_to_glyph[i] = NO_GLYPH; } diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs index 54725d122b0..2e4ae665ea9 100644 --- a/components/layout/display_list_builder.rs +++ b/components/layout/display_list_builder.rs @@ -44,6 +44,7 @@ use servo_util::geometry::{mod, Au, to_px}; use servo_util::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize}; use servo_util::opts; use std::default::Default; +use std::iter::repeat; use std::num::FloatMath; use style::computed::{AngleOrCorner, LengthOrPercentage, HorizontalDirection, VerticalDirection}; use style::computed::{Image, LinearGradient}; @@ -881,7 +882,7 @@ impl FragmentDisplayListBuilding for Fragment { renderer.deref().lock().send(SendPixelContents(sender)); receiver.recv() }, - None => Vec::from_elem(width * height * 4, 0xFFu8) + None => repeat(0xFFu8).take(width * height * 4).collect(), }; let canvas_display_item = box ImageDisplayItem { diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 1cc9c2dc9e8..3d28cf2bdc9 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4584,11 +4584,12 @@ class CGBindingRoot(CGThing): 'page::JSPageInfo', 'libc', 'servo_util::str::DOMString', - 'std::mem', 'std::cmp', + 'std::iter::repeat', + 'std::mem', + 'std::num', 'std::ptr', 'std::str', - 'std::num', ]) # Add the auto-generated comment. @@ -4885,7 +4886,7 @@ class CallbackMember(CGNativeMember): if self.argCount > 0: replacements["argCount"] = self.argCountStr replacements["argvDecl"] = string.Template( - "let mut argv = Vec::from_elem(${argCount}, UndefinedValue());\n" + "let mut argv = repeat(UndefinedValue()).take(${argCount}).collect::<Vec<_>>();\n" ).substitute(replacements) else: # Avoid weird 0-sized arrays diff --git a/components/util/cache.rs b/components/util/cache.rs index 03bd649f777..35390d309bf 100644 --- a/components/util/cache.rs +++ b/components/util/cache.rs @@ -6,6 +6,7 @@ use std::collections::HashMap; use std::collections::hash_map::{Occupied, Vacant}; use rand::Rng; use std::hash::{Hash, sip}; +use std::iter::repeat; use std::rand::task_rng; use std::slice::Items; @@ -148,7 +149,7 @@ impl<K:Clone+PartialEq+Hash,V:Clone> SimpleHashCache<K,V> { pub fn new(cache_size: uint) -> SimpleHashCache<K,V> { let mut r = task_rng(); SimpleHashCache { - entries: Vec::from_elem(cache_size, None), + entries: repeat(None).take(cache_size).collect(), k0: r.gen(), k1: r.gen(), } |