aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMargaret Meyerhofer <mmeyerhofer@mozilla.com>2012-06-12 17:27:53 -0700
committerMargaret Meyerhofer <mmeyerhofer@mozilla.com>2012-06-13 13:57:19 -0700
commit3b1df3668c039e21877b36b4366006832269a187 (patch)
tree46ab5dc30a60a6bbbeee0d7bb552d9a16edfcac9 /src
parent9597caf42ba2cbef609399e76c1f6d48d16b58d6 (diff)
downloadservo-3b1df3668c039e21877b36b4366006832269a187.tar.gz
servo-3b1df3668c039e21877b36b4366006832269a187.zip
Removed impilicitly copying value warnings.
Diffstat (limited to 'src')
-rw-r--r--src/servo/content.rs23
-rw-r--r--src/servo/dom/base.rs6
-rw-r--r--src/servo/engine.rs5
-rw-r--r--src/servo/layout/style/matching.rs5
-rw-r--r--src/servo/layout/text.rs4
-rw-r--r--src/servo/opts.rs6
-rw-r--r--src/servo/parser/css_builder.rs8
-rw-r--r--src/servo/parser/html_builder.rs7
-rw-r--r--src/servo/parser/lexer.rs16
-rw-r--r--src/servo/servo.rs7
-rw-r--r--src/servo/text/text_run.rs2
11 files changed, 50 insertions, 39 deletions
diff --git a/src/servo/content.rs b/src/servo/content.rs
index 2023cc3343f..457841f8b4e 100644
--- a/src/servo/content.rs
+++ b/src/servo/content.rs
@@ -9,8 +9,8 @@ import layout::layout;
import js::rust::methods;
enum msg {
- parse(str),
- execute(str),
+ parse(~str),
+ execute(~str),
exit
}
@@ -37,20 +37,21 @@ fn content(to_layout: chan<layout::msg>) -> chan<msg> {
loop {
alt from_master.recv() {
parse(filename) {
- #debug["content: Received filename `%s` to parse", filename];
+ #debug["content: Received filename `%s` to parse", *filename];
// TODO actually parse where the css sheet should be
// Replace .html with .css and try to open a stylesheet
- assert filename.ends_with(".html");
- let new_file = filename.substr(0u, filename.len() - 5u)
+ assert (*filename).ends_with(".html");
+ let new_file = (*filename).substr(0u, (*filename).len() - 5u)
+ ".css";
// Send off a task to parse the stylesheet
let css_port = comm::port();
let css_chan = comm::chan(css_port);
task::spawn {||
+ let new_file <- new_file;
let css_stream = parser::lexer::
- spawn_css_lexer_task(new_file);
+ spawn_css_lexer_task(~new_file);
let css_rules = parser::css_builder::
build_stylesheet(css_stream);
css_chan.send(css_rules);
@@ -81,11 +82,12 @@ fn content(to_layout: chan<layout::msg>) -> chan<msg> {
scope.reader_forked();
}
execute(filename) {
- #debug["content: Received filename `%s` to execute", filename];
+ #debug["content: Received filename `%s` to execute",
+ *filename];
- alt io::read_whole_file(filename) {
+ alt io::read_whole_file(*filename) {
result::err(msg) {
- io::println(#fmt["Error opening %s: %s", filename, msg]);
+ io::println(#fmt["Error opening %s: %s", *filename, msg]);
}
result::ok(bytes) {
let cx = rt.cx();
@@ -93,7 +95,8 @@ fn content(to_layout: chan<layout::msg>) -> chan<msg> {
cx.set_logging_error_reporter();
cx.new_compartment(js::global::global_class).chain { |comp|
comp.define_functions(js::global::debug_fns);
- cx.evaluate_script(comp.global_obj, bytes, filename, 1u)
+ cx.evaluate_script(comp.global_obj, bytes, *filename,
+ 1u)
};
}
}
diff --git a/src/servo/dom/base.rs b/src/servo/dom/base.rs
index 8df22fb9bab..5e8684d07d6 100644
--- a/src/servo/dom/base.rs
+++ b/src/servo/dom/base.rs
@@ -19,7 +19,7 @@ class element {
let subclass: ~element_subclass;
let attrs: dvec<~attr>;
- new(tag_name: str, -subclass: ~element_subclass) {
+ new(-tag_name: str, -subclass: ~element_subclass) {
self.tag_name = tag_name;
self.subclass = subclass;
self.attrs = dvec();
@@ -29,7 +29,7 @@ class element {
let mut i = 0u;
while i < self.attrs.len() {
if attr_name == self.attrs[i].name {
- ret some(self.attrs[i].value);
+ ret some(copy self.attrs[i].value);
}
i += 1u;
}
@@ -41,7 +41,7 @@ class attr {
let name: str;
let value: str;
- new(name: str, value: str) {
+ new(-name: str, -value: str) {
self.name = name;
self.value = value;
}
diff --git a/src/servo/engine.rs b/src/servo/engine.rs
index bc9375487b1..1828353b2f3 100644
--- a/src/servo/engine.rs
+++ b/src/servo/engine.rs
@@ -1,7 +1,7 @@
import gfx::renderer;
enum msg {
- load_url(str),
+ load_url(~str),
exit(comm::chan<()>)
}
@@ -20,7 +20,8 @@ fn engine<S: renderer::sink send copy>(sink: S) -> comm::chan<msg> {
loop {
alt self_ch.recv() {
load_url(url) {
- if url.ends_with(".js") {
+ let url <- url;
+ if (*url).ends_with(".js") {
content.send(content::execute(url))
} else {
content.send(content::parse(url))
diff --git a/src/servo/layout/style/matching.rs b/src/servo/layout/style/matching.rs
index 2a5629de7a3..43ee3b22c3b 100644
--- a/src/servo/layout/style/matching.rs
+++ b/src/servo/layout/style/matching.rs
@@ -207,10 +207,11 @@ mod test {
import dvec::{dvec, extensions};
import io::println;
- fn new_node_from_attr(scope : node_scope, name : str, val : str) -> node {
+ fn new_node_from_attr(scope : node_scope, -name : str, -val : str) -> node
+ {
let elmt = dom::base::element("div", ~es_div);
let attr = ~attr(name, val);
- elmt.attrs.push(copy attr);
+ elmt.attrs.push(attr);
ret scope.new_node(nk_element(elmt));
}
diff --git a/src/servo/layout/text.rs b/src/servo/layout/text.rs
index c26194d4835..10c03e3d788 100644
--- a/src/servo/layout/text.rs
+++ b/src/servo/layout/text.rs
@@ -8,7 +8,7 @@ class text_box {
let text: str;
let mut run: option<text_run>;
- new(text: str) {
+ new(-text: str) {
self.text = text;
self.run = none;
}
@@ -22,7 +22,7 @@ impl text_layout_methods for @box {
_ { fail "expected text box in reflow_text!" }
};
- let run = text_run(subbox.text);
+ let run = text_run(copy subbox.text);
subbox.run = some(copy run);
run.shape();
diff --git a/src/servo/opts.rs b/src/servo/opts.rs
index d4ca2610705..72ad43057e8 100644
--- a/src/servo/opts.rs
+++ b/src/servo/opts.rs
@@ -25,18 +25,18 @@ fn from_cmdline_args(args: [str]) -> opts {
];
let match = alt getopts::getopts(args, opts) {
- result::ok(m) { m }
+ result::ok(m) { let m <- m; m }
result::err(f) { fail getopts::fail_str(f) }
};
let urls = if match.free.is_empty() {
fail "servo asks that you provide 1 or more URLs"
} else {
- match.free
+ copy match.free
};
let render_mode = alt getopts::opt_maybe_str(match, "o") {
- some(output_file) { png(output_file) }
+ some(output_file) { let output_file <- output_file; png(output_file) }
none { screen }
};
diff --git a/src/servo/parser/css_builder.rs b/src/servo/parser/css_builder.rs
index b1c2e1d9273..30133f3b577 100644
--- a/src/servo/parser/css_builder.rs
+++ b/src/servo/parser/css_builder.rs
@@ -16,12 +16,12 @@ type token_reader = {stream : port<token>, mut lookahead : option<token>};
impl methods for token_reader {
fn get() -> token {
alt copy self.lookahead {
- some(tok) { self.lookahead = none; tok }
+ some(tok) { self.lookahead = none; let t <- tok; t }
none { recv(self.stream) }
}
}
- fn unget(tok : token) {
+ fn unget(-tok : token) {
assert is_none(self.lookahead);
self.lookahead = some(tok);
}
@@ -30,7 +30,7 @@ impl methods for token_reader {
fn parse_element(reader : token_reader) -> option<~selector> {
// Get the current element type
let elmt_name = alt reader.get() {
- to_elmt(tag) { tag }
+ to_elmt(tag) { let t <- tag; t }
to_eof { ret none; }
_ { fail "Expected an element" }
};
@@ -41,7 +41,7 @@ fn parse_element(reader : token_reader) -> option<~selector> {
loop {
let tok = reader.get();
alt tok {
- to_attr(attr) { attr_list += [attr]; }
+ to_attr(attr) { let a <- attr; attr_list += [a]; }
to_start_desc | to_descendant | to_child | to_sibling
| to_comma {
reader.unget(tok);
diff --git a/src/servo/parser/html_builder.rs b/src/servo/parser/html_builder.rs
index 9fa87ffb2bf..398b65e8f3b 100644
--- a/src/servo/parser/html_builder.rs
+++ b/src/servo/parser/html_builder.rs
@@ -10,15 +10,15 @@ import parser::token;
import gfx::geom;
import dvec::extensions;
-fn link_up_attribute(scope: dom::node_scope, node: dom::node, key: str,
- value: str) {
+fn link_up_attribute(scope: dom::node_scope, node: dom::node, -key: str,
+ -value: str) {
// TODO: Implement atoms so that we don't always perform string
// comparisons.
scope.rd(node) {
|node_contents|
alt *node_contents.kind {
dom::nk_element(element) {
- element.attrs.push(~attr(key, value));
+ element.attrs.push(~attr(copy key, copy value));
alt *element.subclass {
es_img(img) if key == "width" {
alt int::from_str(value) {
@@ -89,6 +89,7 @@ fn build_dom(scope: dom::node_scope,
cur = scope.get_parent(cur).get();
}
parser::to_text(s) if !s.is_whitespace() {
+ let s <- s;
let new_node = scope.new_node(dom::nk_text(s));
scope.add_child(cur, new_node);
}
diff --git a/src/servo/parser/lexer.rs b/src/servo/parser/lexer.rs
index 0ebd18e2399..a341021df34 100644
--- a/src/servo/parser/lexer.rs
+++ b/src/servo/parser/lexer.rs
@@ -475,31 +475,34 @@ fn parser(reader: io::reader, state : parse_state) -> parser {
ret { mut lookahead: none, mut state: state, reader: reader };
}
-fn spawn_html_parser_task(filename: str) -> port<html::token> {
+fn spawn_html_parser_task(-filename: ~str) -> port<html::token> {
let result_port = port();
let result_chan = chan(result_port);
task::spawn {||
+ let filename <- *filename;
+ assert (copy filename).ends_with(".html");
let file_data = io::read_whole_file(filename).get();
let reader = io::bytes_reader(file_data);
- assert filename.ends_with(".html");
let parser = parser(reader, ps_html_normal);
loop {
let token = parser.parse_html();
+ let should_break = token == html::to_eof;
result_chan.send(token);
- if token == html::to_eof { break; }
+ if should_break { break; }
}
};
ret result_port;
}
-fn spawn_css_lexer_task(filename: str) -> port<css::token> {
+fn spawn_css_lexer_task(-filename: ~str) -> port<css::token> {
let result_port = port();
let result_chan = chan(result_port);
task::spawn {||
- assert filename.ends_with(".css");
+ let filename <- *filename;
+ assert (copy filename).ends_with(".css");
let file_try = io::read_whole_file(filename);
// Check if the given css file existed, if it does, parse it,
@@ -515,8 +518,9 @@ fn spawn_css_lexer_task(filename: str) -> port<css::token> {
loop {
let token = parser.parse_css();
+ let should_break = token == css::to_eof;
result_chan.send(token);
- if token == css::to_eof { break; }
+ if should_break { break; }
}
} else {
#debug["Failed to open css sheet %s", filename];
diff --git a/src/servo/servo.rs b/src/servo/servo.rs
index 71d6697fcd9..b671176e7d7 100644
--- a/src/servo/servo.rs
+++ b/src/servo/servo.rs
@@ -41,7 +41,7 @@ fn run_pipeline_screen(urls: [str]) {
for urls.each { |filename|
#debug["master: Sending filename `%s`", filename];
- engine.send(engine::load_url(filename));
+ engine.send(engine::load_url(~copy filename));
#debug["master: Waiting for keypress"];
key_ch.recv();
}
@@ -56,7 +56,7 @@ fn run_pipeline_screen(urls: [str]) {
osmain.send(platform::osmain::exit);
}
-fn run_pipeline_png(url: str, outfile: str) {
+fn run_pipeline_png(-url: str, outfile: str) {
// Use a PNG encoder as the graphics sink
import gfx::pngsink;
@@ -65,7 +65,8 @@ fn run_pipeline_png(url: str, outfile: str) {
listen {|pngdata|
let sink = pngsink::pngsink(pngdata);
let engine = engine::engine(sink);
- engine.send(engine::load_url(url));
+ let url <- url;
+ engine.send(engine::load_url(~url));
alt io::buffered_file_writer(outfile) {
result::ok(writer) {
import io::writer;
diff --git a/src/servo/text/text_run.rs b/src/servo/text/text_run.rs
index 76d2144e88b..21dcfd10ed0 100644
--- a/src/servo/text/text_run.rs
+++ b/src/servo/text/text_run.rs
@@ -7,7 +7,7 @@ class text_run {
let text: str;
let mut glyphs: option<[glyph]>;
- new(text: str) {
+ new(-text: str) {
self.text = text;
self.glyphs = none;
}