Merge pull request #2776 from glennw/warnings

Warning police.
This commit is contained in:
Jack Moffitt 2014-07-07 00:30:04 -06:00
commit 7babb6d104
10 changed files with 83 additions and 78 deletions

View file

@ -13,6 +13,7 @@ extern "C" {
fn tc_deletearray(mem: *mut c_void); fn tc_deletearray(mem: *mut c_void);
} }
#[allow(experimental)]
pub fn newarray0<T>(nmem: size_t) -> *mut T { pub fn newarray0<T>(nmem: size_t) -> *mut T {
let mem = newarray::<T>(nmem) as *mut T; let mem = newarray::<T>(nmem) as *mut T;
unsafe { unsafe {
@ -27,6 +28,7 @@ pub fn newarray<T>(nmem: size_t) -> *mut T {
} }
} }
#[allow(experimental)]
pub fn new0<T>(nmem: size_t) -> *mut T { pub fn new0<T>(nmem: size_t) -> *mut T {
let mem = new(nmem * mem::size_of::<T>() as u64) as *mut T; let mem = new(nmem * mem::size_of::<T>() as u64) as *mut T;
unsafe { unsafe {

View file

@ -312,7 +312,7 @@ impl LayoutTask {
opts: &Opts, opts: &Opts,
time_profiler_chan: TimeProfilerChan) time_profiler_chan: TimeProfilerChan)
-> LayoutTask { -> LayoutTask {
let local_image_cache = Arc::new(Mutex::new(LocalImageCache(image_cache_task.clone()))); let local_image_cache = Arc::new(Mutex::new(LocalImageCache::new(image_cache_task.clone())));
let screen_size = Size2D(Au(0), Au(0)); let screen_size = Size2D(Au(0), Au(0));
let parallel_traversal = if opts.layout_threads != 1 { let parallel_traversal = if opts.layout_threads != 1 {
Some(WorkQueue::new("LayoutWorker", opts.layout_threads, ptr::mut_null())) Some(WorkQueue::new("LayoutWorker", opts.layout_threads, ptr::mut_null()))

View file

@ -31,7 +31,7 @@ use compositing::{CompositorChan, CompositorTask, Constellation};
use servo_msg::constellation_msg::{ConstellationChan, InitLoadUrlMsg}; use servo_msg::constellation_msg::{ConstellationChan, InitLoadUrlMsg};
#[cfg(not(test))] #[cfg(not(test))]
use servo_net::image_cache_task::{ImageCacheTask, SyncImageCacheTask}; use servo_net::image_cache_task::ImageCacheTask;
#[cfg(not(test))] #[cfg(not(test))]
use servo_net::resource_task::ResourceTask; use servo_net::resource_task::ResourceTask;
#[cfg(not(test))] #[cfg(not(test))]
@ -111,9 +111,9 @@ pub fn run(opts: opts::Opts) {
// image load or we risk emitting an output file missing the // image load or we risk emitting an output file missing the
// image. // image.
let image_cache_task = if opts.output_file.is_some() { let image_cache_task = if opts.output_file.is_some() {
SyncImageCacheTask(resource_task.clone()) ImageCacheTask::new_sync(resource_task.clone())
} else { } else {
ImageCacheTask(resource_task.clone()) ImageCacheTask::new(resource_task.clone())
}; };
let constellation_chan = Constellation::start(compositor_chan, let constellation_chan = Constellation::start(compositor_chan,
opts, opts,

View file

@ -80,7 +80,8 @@ impl<E, S: Encoder<E>> Encodable<S, E> for ImageCacheTask {
type DecoderFactory = fn() -> proc(&[u8]) -> Option<Image>; type DecoderFactory = fn() -> proc(&[u8]) -> Option<Image>;
pub fn ImageCacheTask(resource_task: ResourceTask) -> ImageCacheTask { impl ImageCacheTask {
pub fn new(resource_task: ResourceTask) -> ImageCacheTask {
let (chan, port) = channel(); let (chan, port) = channel();
let chan_clone = chan.clone(); let chan_clone = chan.clone();
@ -101,12 +102,11 @@ pub fn ImageCacheTask(resource_task: ResourceTask) -> ImageCacheTask {
} }
} }
// FIXME: make this priv after visibility rules change pub fn new_sync(resource_task: ResourceTask) -> ImageCacheTask {
pub fn SyncImageCacheTask(resource_task: ResourceTask) -> ImageCacheTask {
let (chan, port) = channel(); let (chan, port) = channel();
spawn(proc() { spawn(proc() {
let inner_cache = ImageCacheTask(resource_task.clone()); let inner_cache = ImageCacheTask::new(resource_task.clone());
loop { loop {
let msg: Msg = port.recv(); let msg: Msg = port.recv();
@ -128,6 +128,7 @@ pub fn SyncImageCacheTask(resource_task: ResourceTask) -> ImageCacheTask {
chan: chan, chan: chan,
} }
} }
}
struct ImageCache { struct ImageCache {
/// A handle to the resource task for fetching the image binaries /// A handle to the resource task for fetching the image binaries
@ -581,7 +582,7 @@ mod tests {
fn should_exit_on_request() { fn should_exit_on_request() {
let mock_resource_task = mock_resource_task(box DoesNothing); let mock_resource_task = mock_resource_task(box DoesNothing);
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let _url = parse_url("file", None); let _url = parse_url("file", None);
image_cache_task.exit(); image_cache_task.exit();
@ -593,7 +594,7 @@ mod tests {
fn should_fail_if_unprefetched_image_is_requested() { fn should_fail_if_unprefetched_image_is_requested() {
let mock_resource_task = mock_resource_task(box DoesNothing); let mock_resource_task = mock_resource_task(box DoesNothing);
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
let (chan, port) = channel(); let (chan, port) = channel();
@ -607,7 +608,7 @@ mod tests {
let mock_resource_task = mock_resource_task(box JustSendOK { url_requested_chan: url_requested_chan}); let mock_resource_task = mock_resource_task(box JustSendOK { url_requested_chan: url_requested_chan});
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
image_cache_task.send(Prefetch(url)); image_cache_task.send(Prefetch(url));
@ -622,7 +623,7 @@ mod tests {
let mock_resource_task = mock_resource_task(box JustSendOK { url_requested_chan: url_requested_chan}); let mock_resource_task = mock_resource_task(box JustSendOK { url_requested_chan: url_requested_chan});
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
image_cache_task.send(Prefetch(url.clone())); image_cache_task.send(Prefetch(url.clone()));
@ -642,7 +643,7 @@ mod tests {
let mock_resource_task = mock_resource_task(box WaitSendTestImage{wait_port: wait_port}); let mock_resource_task = mock_resource_task(box WaitSendTestImage{wait_port: wait_port});
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
image_cache_task.send(Prefetch(url.clone())); image_cache_task.send(Prefetch(url.clone()));
@ -659,7 +660,7 @@ mod tests {
fn should_return_decoded_image_data_if_data_has_arrived() { fn should_return_decoded_image_data_if_data_has_arrived() {
let mock_resource_task = mock_resource_task(box SendTestImage); let mock_resource_task = mock_resource_task(box SendTestImage);
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
let join_port = image_cache_task.wait_for_store(); let join_port = image_cache_task.wait_for_store();
@ -685,7 +686,7 @@ mod tests {
fn should_return_decoded_image_data_for_multiple_requests() { fn should_return_decoded_image_data_for_multiple_requests() {
let mock_resource_task = mock_resource_task(box SendTestImage); let mock_resource_task = mock_resource_task(box SendTestImage);
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
let join_port = image_cache_task.wait_for_store(); let join_port = image_cache_task.wait_for_store();
@ -732,7 +733,7 @@ mod tests {
} }
}); });
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
image_cache_task.send(Prefetch(url.clone())); image_cache_task.send(Prefetch(url.clone()));
@ -778,7 +779,7 @@ mod tests {
} }
}); });
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
image_cache_task.send(Prefetch(url.clone())); image_cache_task.send(Prefetch(url.clone()));
@ -807,7 +808,7 @@ mod tests {
fn should_return_failed_if_image_bin_cannot_be_fetched() { fn should_return_failed_if_image_bin_cannot_be_fetched() {
let mock_resource_task = mock_resource_task(box SendTestImageErr); let mock_resource_task = mock_resource_task(box SendTestImageErr);
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
let join_port = image_cache_task.wait_for_store_prefetched(); let join_port = image_cache_task.wait_for_store_prefetched();
@ -833,7 +834,7 @@ mod tests {
fn should_return_failed_for_multiple_get_image_requests_if_image_bin_cannot_be_fetched() { fn should_return_failed_for_multiple_get_image_requests_if_image_bin_cannot_be_fetched() {
let mock_resource_task = mock_resource_task(box SendTestImageErr); let mock_resource_task = mock_resource_task(box SendTestImageErr);
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
let join_port = image_cache_task.wait_for_store_prefetched(); let join_port = image_cache_task.wait_for_store_prefetched();
@ -867,7 +868,7 @@ mod tests {
fn should_return_failed_if_image_decode_fails() { fn should_return_failed_if_image_decode_fails() {
let mock_resource_task = mock_resource_task(box SendBogusImage); let mock_resource_task = mock_resource_task(box SendBogusImage);
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
let join_port = image_cache_task.wait_for_store(); let join_port = image_cache_task.wait_for_store();
@ -895,7 +896,7 @@ mod tests {
fn should_return_image_on_wait_if_image_is_already_loaded() { fn should_return_image_on_wait_if_image_is_already_loaded() {
let mock_resource_task = mock_resource_task(box SendTestImage); let mock_resource_task = mock_resource_task(box SendTestImage);
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
let join_port = image_cache_task.wait_for_store(); let join_port = image_cache_task.wait_for_store();
@ -923,7 +924,7 @@ mod tests {
let mock_resource_task = mock_resource_task(box WaitSendTestImage {wait_port: wait_port}); let mock_resource_task = mock_resource_task(box WaitSendTestImage {wait_port: wait_port});
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
image_cache_task.send(Prefetch(url.clone())); image_cache_task.send(Prefetch(url.clone()));
@ -949,7 +950,7 @@ mod tests {
let mock_resource_task = mock_resource_task(box WaitSendTestImageErr{wait_port: wait_port}); let mock_resource_task = mock_resource_task(box WaitSendTestImageErr{wait_port: wait_port});
let image_cache_task = ImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
image_cache_task.send(Prefetch(url.clone())); image_cache_task.send(Prefetch(url.clone()));
@ -973,7 +974,7 @@ mod tests {
fn sync_cache_should_wait_for_images() { fn sync_cache_should_wait_for_images() {
let mock_resource_task = mock_resource_task(box SendTestImage); let mock_resource_task = mock_resource_task(box SendTestImage);
let image_cache_task = SyncImageCacheTask(mock_resource_task.clone()); let image_cache_task = ImageCacheTask::new_sync(mock_resource_task.clone());
let url = parse_url("file", None); let url = parse_url("file", None);
image_cache_task.send(Prefetch(url.clone())); image_cache_task.send(Prefetch(url.clone()));

View file

@ -20,7 +20,15 @@ pub trait ImageResponder {
fn respond(&self) -> proc(ImageResponseMsg):Send; fn respond(&self) -> proc(ImageResponseMsg):Send;
} }
pub fn LocalImageCache(image_cache_task: ImageCacheTask) -> LocalImageCache { pub struct LocalImageCache {
image_cache_task: ImageCacheTask,
round_number: uint,
on_image_available: Option<Box<ImageResponder+Send>>,
state_map: UrlMap<ImageState>
}
impl LocalImageCache {
pub fn new(image_cache_task: ImageCacheTask) -> LocalImageCache {
LocalImageCache { LocalImageCache {
image_cache_task: image_cache_task, image_cache_task: image_cache_task,
round_number: 1, round_number: 1,
@ -28,12 +36,6 @@ pub fn LocalImageCache(image_cache_task: ImageCacheTask) -> LocalImageCache {
state_map: url_map() state_map: url_map()
} }
} }
pub struct LocalImageCache {
image_cache_task: ImageCacheTask,
round_number: uint,
on_image_available: Option<Box<ImageResponder+Send>>,
state_map: UrlMap<ImageState>
} }
#[deriving(Clone)] #[deriving(Clone)]

View file

@ -43,7 +43,7 @@ fn parse_css(provenance: StylesheetProvenance) -> Stylesheet {
} }
InlineProvenance(base_url, data) => { InlineProvenance(base_url, data) => {
debug!("cssparse: loading inline stylesheet {:s}", data); debug!("cssparse: loading inline stylesheet {:s}", data);
Stylesheet::from_str(data.as_slice(), base_url, environment_encoding) Stylesheet::from_str(data.as_slice(), base_url)
} }
} }
} }

View file

@ -53,12 +53,12 @@ impl Stylesheet {
bytes: &[u8], base_url: Url, protocol_encoding_label: Option<&str>, bytes: &[u8], base_url: Url, protocol_encoding_label: Option<&str>,
environment_encoding: Option<EncodingRef>) -> Stylesheet { environment_encoding: Option<EncodingRef>) -> Stylesheet {
// TODO: bytes.as_slice could be bytes.container_as_bytes() // TODO: bytes.as_slice could be bytes.container_as_bytes()
let (string, used_encoding) = decode_stylesheet_bytes( let (string, _) = decode_stylesheet_bytes(
bytes.as_slice(), protocol_encoding_label, environment_encoding); bytes.as_slice(), protocol_encoding_label, environment_encoding);
Stylesheet::from_str(string.as_slice(), base_url, used_encoding) Stylesheet::from_str(string.as_slice(), base_url)
} }
pub fn from_str(css: &str, base_url: Url, encoding: EncodingRef) -> Stylesheet { pub fn from_str(css: &str, base_url: Url) -> Stylesheet {
static STATE_CHARSET: uint = 1; static STATE_CHARSET: uint = 1;
static STATE_IMPORTS: uint = 2; static STATE_IMPORTS: uint = 2;
static STATE_NAMESPACES: uint = 3; static STATE_NAMESPACES: uint = 3;

View file

@ -101,7 +101,7 @@ pub fn from_cmdline_args(args: &[String]) -> Option<Opts> {
let opt_match = match getopts::getopts(args, opts.as_slice()) { let opt_match = match getopts::getopts(args, opts.as_slice()) {
Ok(m) => m, Ok(m) => m,
Err(f) => { Err(f) => {
args_fail(f.to_err_msg().as_slice()); args_fail(format!("{}", f).as_slice());
return None; return None;
} }
}; };

View file

@ -128,7 +128,7 @@ pub trait SmallVec<T> : SmallVecPrivate<T> {
} }
unsafe { unsafe {
let end: &mut T = mem::transmute(self.end()); let end: &mut T = mem::transmute(self.end());
mem::overwrite(end, value); ptr::write(end, value);
let len = self.len(); let len = self.len();
self.set_len(len + 1) self.set_len(len + 1)
} }

View file

@ -43,7 +43,7 @@ fn parse_config(args: Vec<String>) -> Config {
let opts = vec!(reqopt("s", "source-dir", "source-dir", "source-dir")); let opts = vec!(reqopt("s", "source-dir", "source-dir", "source-dir"));
let matches = match getopts(args, opts.as_slice()) { let matches = match getopts(args, opts.as_slice()) {
Ok(m) => m, Ok(m) => m,
Err(f) => fail!(f.to_err_msg()) Err(f) => fail!(format!("{}", f))
}; };
Config { Config {