Added copies and pure functions to fix borrowck errors

This commit is contained in:
Margaret Meyerhofer 2012-06-11 10:51:55 -07:00
parent 61a615fb4d
commit cdb910bd85
9 changed files with 18 additions and 16 deletions

View file

@ -97,7 +97,7 @@ impl private_methods<T:send,A> for handle<T,A> {
fn set_rd_aux(t: *A) unsafe { (**self).rd_aux = t; } fn set_rd_aux(t: *A) unsafe { (**self).rd_aux = t; }
fn set_next_dirty(+h: handle<T,A>) unsafe { (**self).next_dirty = h; } fn set_next_dirty(+h: handle<T,A>) unsafe { (**self).next_dirty = h; }
fn is_null() -> bool { (*self).is_null() } pure fn is_null() -> bool { (*self).is_null() }
fn is_not_null() -> bool { (*self).is_not_null() } fn is_not_null() -> bool { (*self).is_not_null() }
} }

View file

@ -32,10 +32,10 @@ fn zero_size_au() -> size<au> {
{width: au(0), height: au(0)} {width: au(0), height: au(0)}
} }
fn px_to_au(i: int) -> au { pure fn px_to_au(i: int) -> au {
au(i * 60) au(i * 60)
} }
fn au_to_px(au: au) -> int { pure fn au_to_px(au: au) -> int {
*au / 60 *au / 60
} }

View file

@ -105,7 +105,7 @@ impl layout_methods for @box {
fn reflow_intrinsic(size: geom::size<au>) { fn reflow_intrinsic(size: geom::size<au>) {
self.bounds.size = copy size; self.bounds.size = copy size;
#debug["reflow_intrinsic size=%?", self.bounds]; #debug["reflow_intrinsic size=%?", copy self.bounds];
} }
#[doc="Dumps the box tree, for debugging."] #[doc="Dumps the box tree, for debugging."]

View file

@ -30,7 +30,7 @@ impl block_layout_methods for @box {
self.bounds.size = {width: available_width, // FIXME self.bounds.size = {width: available_width, // FIXME
height: au(current_height)}; height: au(current_height)};
#debug["reflow_block size=%?", self.bounds]; #debug["reflow_block size=%?", copy self.bounds];
} }
} }

View file

@ -10,6 +10,7 @@ import /*layout::*/base::{rd_tree_ops, wr_tree_ops};
import /*layout::*/style::style::{style_methods}; import /*layout::*/style::style::{style_methods};
import /*layout::*/text::text_box; import /*layout::*/text::text_box;
import util::tree; import util::tree;
import option::is_none;
export box_builder_methods; export box_builder_methods;
@ -130,7 +131,7 @@ impl methods for ctxt {
} }
self.finish_anonymous_box_if_necessary(); self.finish_anonymous_box_if_necessary();
assert self.anon_box.is_none(); assert is_none(self.anon_box);
} }
#[doc=" #[doc="
@ -138,7 +139,7 @@ impl methods for ctxt {
anonymous box to the block. anonymous box to the block.
"] "]
fn finish_anonymous_box_if_necessary() { fn finish_anonymous_box_if_necessary() {
alt self.anon_box { alt copy self.anon_box {
none { /* Nothing to do. */ } none { /* Nothing to do. */ }
some(b) { btree.add_child(self.parent_box, b); } some(b) { btree.add_child(self.parent_box, b); }
} }

View file

@ -29,7 +29,7 @@ impl inline_layout_methods for @box {
self.bounds.size = { width: available_width, self.bounds.size = { width: available_width,
height: au(current_height) }; height: au(current_height) };
#debug["reflow_inline size=%?", self.bounds]; #debug["reflow_inline size=%?", copy self.bounds];
} }
} }

View file

@ -9,19 +9,20 @@ import parser::lexer::css::{token, to_start_desc, to_end_desc,
to_comma, to_elmt, to_attr, to_desc, to_comma, to_elmt, to_attr, to_desc,
to_eof}; to_eof};
import comm::recv; import comm::recv;
import option::is_none;
type token_reader = {stream : port<token>, mut lookahead : option<token>}; type token_reader = {stream : port<token>, mut lookahead : option<token>};
impl methods for token_reader { impl methods for token_reader {
fn get() -> token { fn get() -> token {
alt self.lookahead { alt copy self.lookahead {
some(tok) { self.lookahead = none; tok } some(tok) { self.lookahead = none; tok }
none { recv(self.stream) } none { recv(self.stream) }
} }
} }
fn unget(tok : token) { fn unget(tok : token) {
assert self.lookahead.is_none(); assert is_none(self.lookahead);
self.lookahead = some(tok); self.lookahead = some(tok);
} }
} }

View file

@ -2,6 +2,7 @@ import comm::{port, chan};
import html::html_methods; import html::html_methods;
import css::css_methods; import css::css_methods;
import dom::style; import dom::style;
import option::is_none;
enum parse_state { enum parse_state {
ps_html_normal, ps_html_normal,
@ -43,7 +44,7 @@ impl u8_vec_methods for [u8] {
impl util_methods for parser { impl util_methods for parser {
fn get() -> char_or_eof { fn get() -> char_or_eof {
alt self.lookahead { alt copy self.lookahead {
some(coe) { some(coe) {
let rv = coe; let rv = coe;
self.lookahead = none; self.lookahead = none;
@ -59,7 +60,7 @@ impl util_methods for parser {
} }
fn unget(ch: u8) { fn unget(ch: u8) {
assert self.lookahead.is_none(); assert is_none(self.lookahead);
self.lookahead = some(coe_char(ch)); self.lookahead = some(coe_char(ch));
} }
@ -316,7 +317,7 @@ mod css {
} }
fn parse_css_element(c : u8) -> token { fn parse_css_element(c : u8) -> token {
assert self.lookahead.is_none(); assert is_none(self.lookahead);
/* Check for special attributes with an implied element, /* Check for special attributes with an implied element,
or a wildcard which is not a alphabet character.*/ or a wildcard which is not a alphabet character.*/

View file

@ -23,7 +23,7 @@ fn each_child<T:copy,O:rd_tree_ops<T>>(
let mut p = ops.with_tree_fields(node) { |f| f.first_child }; let mut p = ops.with_tree_fields(node) { |f| f.first_child };
loop { loop {
alt p { alt copy p {
none { ret; } none { ret; }
some(c) { some(c) {
if !f(c) { ret; } if !f(c) { ret; }
@ -54,11 +54,10 @@ fn add_child<T:copy,O:wr_tree_ops<T>>(
assert child_tf.next_sibling == none; assert child_tf.next_sibling == none;
ops.with_tree_fields(parent) { |parent_tf| ops.with_tree_fields(parent) { |parent_tf|
alt parent_tf.last_child { alt copy parent_tf.last_child {
none { none {
parent_tf.first_child = some(child); parent_tf.first_child = some(child);
} }
some(lc) { some(lc) {
let lc = lc; // satisfy alias checker let lc = lc; // satisfy alias checker
ops.with_tree_fields(lc) { |lc_tf| ops.with_tree_fields(lc) { |lc_tf|