aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian J. Burg <burg@cs.washington.edu>2012-11-18 18:57:46 -0800
committerBrian J. Burg <burg@cs.washington.edu>2012-11-18 18:57:46 -0800
commit2a1e97c80ff2763f1efbbc2d966e633621dff71a (patch)
tree3e26a2b6051a24c6addca05d71195f9ff8517bdd /src
parentda17edee9230c8c5cadb2bde322c552f8ddf104a (diff)
downloadservo-2a1e97c80ff2763f1efbbc2d966e633621dff71a.tar.gz
servo-2a1e97c80ff2763f1efbbc2d966e633621dff71a.zip
Delete old range, s/MutableRange/Range/g;
Diffstat (limited to 'src')
-rw-r--r--src/servo-gfx/display_list.rs6
-rw-r--r--src/servo-gfx/font.rs10
-rw-r--r--src/servo-gfx/render_context.rs1
-rw-r--r--src/servo-gfx/text/glyph.rs8
-rw-r--r--src/servo-gfx/text/harfbuzz/shaper.rs6
-rw-r--r--src/servo-gfx/text/text_run.rs16
-rw-r--r--src/servo-gfx/util/range.rs66
-rw-r--r--src/servo/layout/box.rs14
-rw-r--r--src/servo/layout/box_builder.rs4
-rw-r--r--src/servo/layout/flow.rs1
-rw-r--r--src/servo/layout/inline.rs30
-rw-r--r--src/servo/layout/text.rs8
12 files changed, 60 insertions, 110 deletions
diff --git a/src/servo-gfx/display_list.rs b/src/servo-gfx/display_list.rs
index fb07756df57..f8c97319318 100644
--- a/src/servo-gfx/display_list.rs
+++ b/src/servo-gfx/display_list.rs
@@ -3,7 +3,7 @@ use geometry::Au;
use image::base::Image;
use render_context::RenderContext;
use text::SendableTextRun;
-use util::range::MutableRange;
+use util::range::Range;
use azure::azure_hl::DrawTarget;
use core::dvec::DVec;
@@ -27,7 +27,7 @@ pub enum DisplayItem {
// TODO: need to provide spacing data for text run.
// (i.e, to support rendering of CSS 'word-spacing' and 'letter-spacing')
// TODO: don't copy text runs, ever.
- Text(DisplayItemData, ~SendableTextRun, MutableRange, Color),
+ Text(DisplayItemData, ~SendableTextRun, Range, Color),
Image(DisplayItemData, ARC<~image::base::Image>),
Border(DisplayItemData, Au, Color)
}
@@ -71,7 +71,7 @@ impl DisplayItem {
static pure fn new_Text(bounds: &Rect<Au>,
run: ~SendableTextRun,
- range: MutableRange,
+ range: Range,
color: Color) -> DisplayItem {
Text(DisplayItemData::new(bounds), move run, move range, color)
}
diff --git a/src/servo-gfx/font.rs b/src/servo-gfx/font.rs
index 2a7a52e9946..23b20b153ca 100644
--- a/src/servo-gfx/font.rs
+++ b/src/servo-gfx/font.rs
@@ -2,7 +2,7 @@ use color::Color;
use font_context::FontContext;
use geometry::Au;
use render_context::RenderContext;
-use util::range::{Range, MutableRange};
+use util::range::Range;
use text::glyph::{GlyphStore, GlyphIndex};
use text::{Shaper, TextRun};
@@ -372,10 +372,10 @@ impl Font {
pub trait FontMethods {
fn draw_text_into_context(rctx: &RenderContext,
run: &TextRun,
- range: &MutableRange,
+ range: &Range,
baseline_origin: Point2D<Au>,
color: Color);
- fn measure_text(&TextRun, &const MutableRange) -> RunMetrics;
+ fn measure_text(&TextRun, &const Range) -> RunMetrics;
fn shape_text(@self, &str) -> GlyphStore;
fn get_descriptor() -> FontDescriptor;
@@ -388,7 +388,7 @@ pub trait FontMethods {
pub impl Font : FontMethods {
fn draw_text_into_context(rctx: &RenderContext,
run: &TextRun,
- range: &const MutableRange,
+ range: &const Range,
baseline_origin: Point2D<Au>,
color: Color) {
use libc::types::common::c99::{uint16_t, uint32_t};
@@ -445,7 +445,7 @@ pub impl Font : FontMethods {
ptr::null());
}
- fn measure_text(run: &TextRun, range: &const MutableRange) -> RunMetrics {
+ fn measure_text(run: &TextRun, range: &const Range) -> RunMetrics {
assert range.is_valid_for_string(run.text);
// TODO(Issue #199): alter advance direction for RTL
diff --git a/src/servo-gfx/render_context.rs b/src/servo-gfx/render_context.rs
index fe51ece25ea..2d77f52cf6c 100644
--- a/src/servo-gfx/render_context.rs
+++ b/src/servo-gfx/render_context.rs
@@ -4,7 +4,6 @@ use geometry::Au;
use image::base::Image;
use opts::Opts;
use text::TextRun;
-use util::range::Range;
use azure::azure_hl::{AsAzureRect, B8G8R8A8, Color, ColorPattern, DrawOptions};
use azure::azure_hl::{DrawSurfaceOptions, DrawTarget, Linear, StrokeOptions};
diff --git a/src/servo-gfx/text/glyph.rs b/src/servo-gfx/text/glyph.rs
index 9dba4ed225e..fc65b5e04b8 100644
--- a/src/servo-gfx/text/glyph.rs
+++ b/src/servo-gfx/text/glyph.rs
@@ -1,6 +1,6 @@
use au = geometry;
use au::Au;
-use servo_gfx_util::range::MutableRange;
+use servo_gfx_util::range::Range;
use servo_gfx_util::vec::*;
use core::cmp::{Ord, Eq};
@@ -582,13 +582,13 @@ impl GlyphStore {
return true;
}
- fn iter_glyphs_for_range(&self, range: &const MutableRange, cb: fn&(uint, GlyphInfo/&) -> bool) {
+ fn iter_glyphs_for_range(&self, range: &const Range, cb: fn&(uint, GlyphInfo/&) -> bool) {
assert range.begin() < self.entry_buffer.len();
assert range.end() <= self.entry_buffer.len();
for range.eachi |i| {
- if !self.iter_glyphs_for_index(i, cb) { break; }
- }
+ if !self.iter_glyphs_for_index(i, cb) { break; }
+ }
}
fn iter_all_glyphs(cb: fn&(uint, GlyphInfo/&) -> bool) {
diff --git a/src/servo-gfx/text/harfbuzz/shaper.rs b/src/servo-gfx/text/harfbuzz/shaper.rs
index 4f5a0f1313b..58fe035014b 100644
--- a/src/servo-gfx/text/harfbuzz/shaper.rs
+++ b/src/servo-gfx/text/harfbuzz/shaper.rs
@@ -13,7 +13,7 @@ use font::{
use glyph::{GlyphStore, GlyphIndex, GlyphData};
use servo_util::range;
-use range::MutableRange;
+use range::Range;
use core::libc::types::common::c99::int32_t;
use core::libc::{c_uint, c_int, c_void, c_char};
@@ -250,10 +250,10 @@ pub impl HarfbuzzShaper {
}
// some helpers
- let mut glyph_span : MutableRange = range::empty_mut();
+ let mut glyph_span : Range = Range::empty();
// this span contains first byte of first char, to last byte of last char in range.
// so, end() points to first byte of last+1 char, if it's less than byte_max.
- let mut char_byte_span : MutableRange = range::empty_mut();
+ let mut char_byte_span : Range = Range::empty();
let mut y_pos = Au(0);
// main loop over each glyph. each iteration usually processes 1 glyph and 1+ chars.
diff --git a/src/servo-gfx/text/text_run.rs b/src/servo-gfx/text/text_run.rs
index 1a7348424d7..b47e522580f 100644
--- a/src/servo-gfx/text/text_run.rs
+++ b/src/servo-gfx/text/text_run.rs
@@ -2,7 +2,7 @@ use font_context::FontContext;
use geometry::Au;
use glyph::GlyphStore;
use servo_gfx_font::{Font, FontDescriptor, RunMetrics};
-use servo_gfx_util::range::{Range, MutableRange};
+use servo_gfx_util::range::Range;
use core::libc::{c_void};
use geom::point::Point2D;
@@ -60,7 +60,7 @@ impl TextRun {
pure fn glyphs(&self) -> &self/GlyphStore { &self.glyphs }
- pure fn range_is_trimmable_whitespace(&self, range: &const MutableRange) -> bool {
+ pure fn range_is_trimmable_whitespace(&self, range: &const Range) -> bool {
let mut i = range.begin();
while i < range.end() {
// jump i to each new char
@@ -74,11 +74,11 @@ impl TextRun {
return true;
}
- fn metrics_for_range(&self, range: &const MutableRange) -> RunMetrics {
+ fn metrics_for_range(&self, range: &const Range) -> RunMetrics {
self.font.measure_text(self, range)
}
- fn min_width_for_range(&self, range: &const MutableRange) -> Au {
+ fn min_width_for_range(&self, range: &const Range) -> Au {
assert range.is_valid_for_string(self.text);
let mut max_piece_width = Au(0);
@@ -89,10 +89,10 @@ impl TextRun {
return max_piece_width;
}
- fn iter_natural_lines_for_range(&self, range: &const MutableRange, f: fn(&const MutableRange) -> bool) {
+ fn iter_natural_lines_for_range(&self, range: &const Range, f: fn(&const Range) -> bool) {
assert range.is_valid_for_string(self.text);
- let mut clump = MutableRange::new(range.begin(), 0);
+ let mut clump = Range::new(range.begin(), 0);
let mut in_clump = false;
// clump non-linebreaks of nonzero length
@@ -117,10 +117,10 @@ impl TextRun {
}
}
- fn iter_indivisible_pieces_for_range(&self, range: &const MutableRange, f: fn(&const MutableRange) -> bool) {
+ fn iter_indivisible_pieces_for_range(&self, range: &const Range, f: fn(&const Range) -> bool) {
assert range.is_valid_for_string(self.text);
- let mut clump = MutableRange::new(range.begin(), 0);
+ let mut clump = Range::new(range.begin(), 0);
loop {
// find next non-whitespace byte index, then clump all whitespace before it.
match str::find_between(self.text, clump.begin(), range.end(), |c| !char::is_whitespace(c)) {
diff --git a/src/servo-gfx/util/range.rs b/src/servo-gfx/util/range.rs
index d9243584be1..8844dbcbdff 100644
--- a/src/servo-gfx/util/range.rs
+++ b/src/servo-gfx/util/range.rs
@@ -1,20 +1,3 @@
-pub struct Range {
- priv off: u16,
- priv len: u16
-}
-
-pub pure fn Range(off: uint, len: uint) -> Range {
- assert off <= u16::max_value as uint;
- assert len <= u16::max_value as uint;
-
- Range {
- off: off as u16,
- len: len as u16
- }
-}
-
-pub pure fn empty() -> Range { Range(0,0) }
-
enum RangeRelation {
OverlapsBegin(/* overlap */ uint),
OverlapsEnd(/* overlap */ uint),
@@ -25,53 +8,22 @@ enum RangeRelation {
EntirelyAfter
}
-pub impl Range {
- pub pure fn begin() -> uint { self.off as uint }
- pub pure fn length() -> uint { self.len as uint }
- pub pure fn end() -> uint { (self.off as uint) + (self.len as uint) }
-
- pub pure fn eachi(cb: fn&(uint) -> bool) {
- do uint::range(self.off as uint,
- (self.off as uint) + (self.len as uint)) |i| {
- cb(i)
- }
- }
-
- pub pure fn is_valid_for_string(s: &str) -> bool {
- self.begin() < s.len() && self.end() <= s.len() && self.length() <= s.len()
- }
-
- pub pure fn shift_by(i: int) -> Range {
- Range(((self.off as int) + i) as uint, self.len as uint)
- }
-
- pub pure fn extend_by(i: int) -> Range {
- Range(self.off as uint, ((self.len as int) + i) as uint)
- }
-
- pub pure fn adjust_by(off_i: int, len_i: int) -> Range {
- Range(((self.off as int) + off_i) as uint, ((self.len as int) + len_i) as uint)
- }
-}
-
-pub pure fn empty_mut() -> MutableRange { MutableRange::new(0, 0) }
-
-pub struct MutableRange {
+pub struct Range {
priv off: uint,
priv len: uint
}
-pub impl MutableRange {
- static pub pure fn new(off: uint, len: uint) -> MutableRange {
- MutableRange { off: off, len: len }
+pub impl Range {
+ static pub pure fn new(off: uint, len: uint) -> Range {
+ Range { off: off, len: len }
}
- static pub pure fn empty() -> MutableRange {
- MutableRange::new(0, 0)
+ static pub pure fn empty() -> Range {
+ Range::new(0, 0)
}
}
-pub impl MutableRange {
+pub impl Range {
pure fn begin(&const self) -> uint { self.off }
pure fn length(&const self) -> uint { self.len }
pure fn end(&const self) -> uint { self.off + self.len }
@@ -112,7 +64,7 @@ pub impl MutableRange {
/// Computes the relationship between two ranges (`self` and `other`),
/// from the point of view of `self`. So, 'EntirelyBefore' means
/// that the `self` range is entirely before `other` range.
- pure fn relation_to_range(&const self, other: &const MutableRange) -> RangeRelation {
+ pure fn relation_to_range(&const self, other: &const Range) -> RangeRelation {
if other.begin() > self.end() {
return EntirelyBefore;
}
@@ -140,7 +92,7 @@ pub impl MutableRange {
self, other);
}
- fn repair_after_coalesced_range(&mut self, other: &const MutableRange) {
+ fn repair_after_coalesced_range(&mut self, other: &const Range) {
let relation = self.relation_to_range(other);
debug!("repair_after_coalesced_range: possibly repairing range %?", self);
debug!("repair_after_coalesced_range: relation of original range and coalesced range(%?): %?",
diff --git a/src/servo/layout/box.rs b/src/servo/layout/box.rs
index 276caae3e94..7deced40404 100644
--- a/src/servo/layout/box.rs
+++ b/src/servo/layout/box.rs
@@ -189,8 +189,8 @@ impl RenderBox : RenderBoxMethods {
let mut pieces_processed_count : uint = 0;
let mut remaining_width : Au = max_width;
- let mut left_range = MutableRange::new(data.range.begin(), 0);
- let mut right_range : Option<MutableRange> = None;
+ let mut left_range = Range::new(data.range.begin(), 0);
+ let mut right_range : Option<Range> = None;
debug!("split_to_width: splitting text box (strlen=%u, range=%?, avail_width=%?)",
data.run.text.len(), data.range, max_width);
do data.run.iter_indivisible_pieces_for_range(&const data.range) |piece_range| {
@@ -218,15 +218,15 @@ impl RenderBox : RenderBoxMethods {
// if there are still things after the trimmable whitespace, create right chunk
if piece_range.end() < data.range.end() {
debug!("split_to_width: case=skipping trimmable trailing whitespace, then split remainder");
- right_range = Some(MutableRange::new(piece_range.end(),
- data.range.end() - piece_range.end()));
+ right_range = Some(Range::new(piece_range.end(),
+ data.range.end() - piece_range.end()));
} else {
debug!("split_to_width: case=skipping trimmable trailing whitespace");
}
} else if piece_range.begin() < data.range.end() {
// still things left, create right chunk
- right_range = Some(MutableRange::new(piece_range.begin(),
- data.range.end() - piece_range.begin()));
+ right_range = Some(Range::new(piece_range.begin(),
+ data.range.end() - piece_range.begin()));
debug!("split_to_width: case=splitting remainder with right range=%?",
right_range);
}
@@ -239,7 +239,7 @@ impl RenderBox : RenderBoxMethods {
Some(layout::text::adapt_textbox_with_range(self.d(), data.run, &const left_range))
} else { None };
- let right_box = option::map_default(&right_range, None, |range: &const MutableRange| {
+ let right_box = option::map_default(&right_range, None, |range: &const Range| {
Some(layout::text::adapt_textbox_with_range(self.d(), data.run, range))
});
diff --git a/src/servo/layout/box_builder.rs b/src/servo/layout/box_builder.rs
index cbd9b8a218d..31cb09ef786 100644
--- a/src/servo/layout/box_builder.rs
+++ b/src/servo/layout/box_builder.rs
@@ -12,7 +12,7 @@ use util::tree;
use core::dvec::DVec;
use gfx::image::holder::ImageHolder;
-use gfx::util::range::MutableRange;
+use gfx::util::range::Range;
use newcss::values::{CSSDisplay, CSSDisplayBlock, CSSDisplayInline, CSSDisplayInlineBlock};
use newcss::values::{CSSDisplayNone, Inherit, Specified};
@@ -151,7 +151,7 @@ impl BoxGenerator {
self.flow.inline().boxes.push(*spacer);
}
}
- let mut node_range: MutableRange = MutableRange::new(self.range_stack.pop(), 0);
+ let mut node_range: Range = Range::new(self.range_stack.pop(), 0);
node_range.extend_to(self.flow.inline().boxes.len());
assert node_range.length() > 0;
diff --git a/src/servo/layout/flow.rs b/src/servo/layout/flow.rs
index 8677a22a1e3..00a4e5b6c39 100644
--- a/src/servo/layout/flow.rs
+++ b/src/servo/layout/flow.rs
@@ -13,7 +13,6 @@ use geom::rect::Rect;
use geom::point::Point2D;
use gfx::display_list::DisplayList;
use gfx::geometry::Au;
-use gfx::util::range::{Range, MutableRange};
/** Servo's experimental layout system builds a tree of FlowContexts
and RenderBoxes, and figures out positions and display attributes of
diff --git a/src/servo/layout/inline.rs b/src/servo/layout/inline.rs
index 2f5245228c0..38c80bb8a18 100644
--- a/src/servo/layout/inline.rs
+++ b/src/servo/layout/inline.rs
@@ -12,7 +12,7 @@ use geom::{Point2D, Rect, Size2D};
use gfx::font::FontStyle;
use gfx::geometry::Au;
use gfx::text::util::*;
-use gfx::util::range::{MutableRange, Range};
+use gfx::util::range::Range;
use newcss::values::{CSSTextAlignCenter, CSSTextAlignJustify, CSSTextAlignLeft, CSSTextAlignRight};
use newcss::units::{BoxAuto, BoxLength, Px};
use std::arc;
@@ -41,11 +41,11 @@ hard to try out that alternative.
struct NodeRange {
node: Node,
- range: MutableRange,
+ range: Range,
}
impl NodeRange {
- static pure fn new(node: Node, range: &const MutableRange) -> NodeRange {
+ static pure fn new(node: Node, range: &const Range) -> NodeRange {
NodeRange { node: node, range: copy *range }
}
}
@@ -59,7 +59,7 @@ impl ElementMapping {
ElementMapping { entries: DVec() }
}
- fn add_mapping(node: Node, range: &const MutableRange) {
+ fn add_mapping(node: Node, range: &const Range) {
self.entries.push(NodeRange::new(node, range))
}
@@ -132,8 +132,8 @@ impl ElementMapping {
while repair_stack.len() > 0 && old_i == entries[repair_stack.last().entry_idx].range.end() {
let item = repair_stack.pop();
debug!("repair_for_box_changes: Set range for %u to %?",
- item.entry_idx, Range(item.begin_idx, new_j - item.begin_idx));
- entries[item.entry_idx].range = MutableRange::new(item.begin_idx, new_j - item.begin_idx);
+ item.entry_idx, Range::new(item.begin_idx, new_j - item.begin_idx));
+ entries[item.entry_idx].range = Range::new(item.begin_idx, new_j - item.begin_idx);
}
}
}
@@ -148,13 +148,13 @@ impl ElementMapping {
// stack-allocated object for scanning an inline flow into
// TextRun-containing TextBoxes.
priv struct TextRunScanner {
- clump: MutableRange,
+ clump: Range,
}
priv impl TextRunScanner {
static fn new() -> TextRunScanner {
TextRunScanner {
- clump: MutableRange::empty(),
+ clump: Range::empty(),
}
}
}
@@ -249,7 +249,7 @@ priv impl TextRunScanner {
debug!("TextRunScanner: pushing single text box in range: %?", self.clump);
let new_box = layout::text::adapt_textbox_with_range(old_box.d(),
run,
- &const MutableRange::new(0, run.text.len()));
+ &const Range::new(0, run.text.len()));
out_boxes.push(new_box);
},
(false, true) => {
@@ -270,9 +270,9 @@ priv impl TextRunScanner {
// TODO(Issue #118): use a rope, simply give ownership of nonzero strs to rope
let mut run_str : ~str = ~"";
- let new_ranges : DVec<MutableRange> = DVec();
+ let new_ranges : DVec<Range> = DVec();
for uint::range(0, transformed_strs.len()) |i| {
- new_ranges.push(MutableRange::new(run_str.len(), transformed_strs[i].len()));
+ new_ranges.push(Range::new(run_str.len(), transformed_strs[i].len()));
str::push_str(&mut run_str, transformed_strs[i]);
}
@@ -327,8 +327,8 @@ struct LineboxScanner {
flow: @FlowContext,
new_boxes: DVec<@RenderBox>,
work_list: DList<@RenderBox>,
- pending_line: {mut range: MutableRange, mut width: Au},
- line_spans: DVec<MutableRange>,
+ pending_line: {mut range: Range, mut width: Au},
+ line_spans: DVec<Range>,
}
fn LineboxScanner(inline: @FlowContext) -> LineboxScanner {
@@ -338,7 +338,7 @@ fn LineboxScanner(inline: @FlowContext) -> LineboxScanner {
flow: inline,
new_boxes: DVec(),
work_list: DList(),
- pending_line: {mut range: MutableRange::empty(), mut width: Au(0)},
+ pending_line: {mut range: Range::empty(), mut width: Au(0)},
line_spans: DVec()
}
}
@@ -566,7 +566,7 @@ struct InlineFlowData {
boxes: DVec<@RenderBox>,
// vec of ranges into boxes that represents line positions.
// these ranges are disjoint, and are the result of inline layout.
- lines: DVec<MutableRange>,
+ lines: DVec<Range>,
// vec of ranges into boxes that represent elements. These ranges
// must be well-nested, and are only related to the content of
// boxes (not lines). Ranges are only kept for non-leaf elements.
diff --git a/src/servo/layout/text.rs b/src/servo/layout/text.rs
index f932b654d4d..42ae528b34f 100644
--- a/src/servo/layout/text.rs
+++ b/src/servo/layout/text.rs
@@ -3,14 +3,14 @@
use layout::box::{TextBox, RenderBox, RenderBoxData, UnscannedTextBox};
use gfx::text::text_run::TextRun;
-use gfx::util::range::MutableRange;
+use gfx::util::range::Range;
pub struct TextBoxData {
run: @TextRun,
- range: MutableRange,
+ range: Range,
}
-pub fn TextBoxData(run: @TextRun, range: &const MutableRange) -> TextBoxData {
+pub fn TextBoxData(run: @TextRun, range: &const Range) -> TextBoxData {
TextBoxData {
run: run,
range: copy *range,
@@ -18,7 +18,7 @@ pub fn TextBoxData(run: @TextRun, range: &const MutableRange) -> TextBoxData {
}
pub fn adapt_textbox_with_range(box_data: &RenderBoxData, run: @TextRun,
- range: &const MutableRange) -> @RenderBox {
+ range: &const Range) -> @RenderBox {
debug!("Creating textbox with span: (strlen=%u, off=%u, len=%u) of textrun: %s",
run.text.len(), range.begin(), range.length(), run.text);
let new_box_data = copy *box_data;