aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-01-19 09:12:46 -0700
committerbors-servo <metajack+bors@gmail.com>2015-01-19 09:12:46 -0700
commitd747a33df9c167a3defbbdcfe356ee25eeb672ad (patch)
tree9232a3a92d84f71b65780a23ff0aec97836bef30
parentee94b3e8bf659c847bda967700272f8f98fdb0cc (diff)
parent05c4e3b9f51df868352a137ff211e9ef62e85592 (diff)
downloadservo-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.rs4
-rw-r--r--components/gfx/text/shaping/harfbuzz.rs6
-rw-r--r--components/layout/display_list_builder.rs3
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py7
-rw-r--r--components/util/cache.rs3
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(),
}