Navigation Menu

Skip to content

Commit

Permalink
Remove global field from CanvasRenderingContext2D
Browse files Browse the repository at this point in the history
  • Loading branch information
chkimes committed Jan 11, 2016
1 parent 5e3bbdc commit d90141a
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions components/script/dom/canvasrenderingcontext2d.rs
Expand Up @@ -18,7 +18,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
use dom::bindings::codegen::UnionTypes::HTMLImageElementOrHTMLCanvasElementOrCanvasRenderingContext2D;
use dom::bindings::codegen::UnionTypes::StringOrCanvasGradientOrCanvasPattern;
use dom::bindings::error::{Error, Fallible};
use dom::bindings::global::{GlobalField, GlobalRef};
use dom::bindings::global::{GlobalRef, global_root_from_reflector};
use dom::bindings::inheritance::Castable;
use dom::bindings::js::{JS, LayoutJS, Root};
use dom::bindings::num::Finite;
Expand Down Expand Up @@ -61,7 +61,6 @@ enum CanvasFillOrStrokeStyle {
#[dom_struct]
pub struct CanvasRenderingContext2D {
reflector_: Reflector,
global: GlobalField,
renderer_id: usize,
#[ignore_heap_size_of = "Defined in ipc-channel"]
ipc_renderer: IpcSender<CanvasMsg>,
Expand Down Expand Up @@ -128,7 +127,6 @@ impl CanvasRenderingContext2D {
let (ipc_renderer, renderer_id) = receiver.recv().unwrap();
CanvasRenderingContext2D {
reflector_: Reflector::new(),
global: GlobalField::from_rooted(&global),
renderer_id: renderer_id,
ipc_renderer: ipc_renderer,
canvas: JS::from_ref(canvas),
Expand Down Expand Up @@ -1016,12 +1014,12 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {

let sw = cmp::max(1, sw.abs().to_u32().unwrap());
let sh = cmp::max(1, sh.abs().to_u32().unwrap());
Ok(ImageData::new(self.global.root().r(), sw, sh, None))
Ok(ImageData::new(global_root_from_reflector(self).r(), sw, sh, None))
}

// https://html.spec.whatwg.org/multipage/#dom-context-2d-createimagedata
fn CreateImageData_(&self, imagedata: &ImageData) -> Fallible<Root<ImageData>> {
Ok(ImageData::new(self.global.root().r(),
Ok(ImageData::new(global_root_from_reflector(self).r(),
imagedata.Width(),
imagedata.Height(),
None))
Expand Down Expand Up @@ -1078,7 +1076,7 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
chunk[2] = UNPREMULTIPLY_TABLE[256 * alpha + chunk[2] as usize];
}

Ok(ImageData::new(self.global.root().r(), sw, sh, Some(data)))
Ok(ImageData::new(global_root_from_reflector(self).r(), sw, sh, Some(data)))
}

// https://html.spec.whatwg.org/multipage/#dom-context-2d-putimagedata
Expand All @@ -1101,7 +1099,7 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
dirtyY: Finite<f64>,
dirtyWidth: Finite<f64>,
dirtyHeight: Finite<f64>) {
let data = imagedata.get_data_array(&self.global.root().r());
let data = imagedata.get_data_array(&global_root_from_reflector(self).r());
let offset = Point2D::new(*dx, *dy);
let image_data_size = Size2D::new(imagedata.Width() as f64, imagedata.Height() as f64);

Expand All @@ -1122,7 +1120,7 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
x1: Finite<f64>,
y1: Finite<f64>)
-> Root<CanvasGradient> {
CanvasGradient::new(self.global.root().r(),
CanvasGradient::new(global_root_from_reflector(self).r(),
CanvasGradientStyle::Linear(LinearGradientStyle::new(*x0,
*y0,
*x1,
Expand All @@ -1143,7 +1141,7 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
return Err(Error::IndexSize);
}

Ok(CanvasGradient::new(self.global.root().r(),
Ok(CanvasGradient::new(global_root_from_reflector(self).r(),
CanvasGradientStyle::Radial(RadialGradientStyle::new(*x0,
*y0,
*r0,
Expand Down Expand Up @@ -1183,7 +1181,7 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
}

if let Ok(rep) = RepetitionStyle::from_str(&repetition) {
Ok(CanvasPattern::new(self.global.root().r(),
Ok(CanvasPattern::new(global_root_from_reflector(self).r(),
image_data,
image_size,
rep,
Expand Down

0 comments on commit d90141a

Please sign in to comment.