aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2014-12-31 07:33:46 -0700
committerbors-servo <metajack+bors@gmail.com>2014-12-31 07:33:46 -0700
commit841f1b6f2559e7a33a1517fba53c12bbd67ed44f (patch)
treea09f8949b708da63057055dba5edf00882d9f83a /components/script/dom
parent0da57abec6014f8a6edde9781598053deab996c7 (diff)
parent2669dac3122dc0b25949fd617d301f3fab0a3cc3 (diff)
downloadservo-841f1b6f2559e7a33a1517fba53c12bbd67ed44f.tar.gz
servo-841f1b6f2559e7a33a1517fba53c12bbd67ed44f.zip
auto merge of #4520 : Ms2ger/servo/or_init, r=jdm
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/htmlcanvaselement.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs
index 0c3d8df0e1d..890e17ac452 100644
--- a/components/script/dom/htmlcanvaselement.rs
+++ b/components/script/dom/htmlcanvaselement.rs
@@ -9,7 +9,7 @@ use dom::bindings::codegen::Bindings::HTMLCanvasElementBinding::HTMLCanvasElemen
use dom::bindings::codegen::InheritTypes::HTMLCanvasElementDerived;
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast};
use dom::bindings::global::GlobalRef;
-use dom::bindings::js::{MutNullableJS, JSRef, Temporary, OptionalSettable};
+use dom::bindings::js::{MutNullableJS, JSRef, Temporary};
use dom::canvasrenderingcontext2d::CanvasRenderingContext2D;
use dom::document::Document;
use dom::element::{Element, ElementTypeId, AttributeHandlers};
@@ -83,13 +83,11 @@ impl<'a> HTMLCanvasElementMethods for JSRef<'a, HTMLCanvasElement> {
return None;
}
- if self.context.get().is_none() {
+ Some(self.context.or_init(|| {
let window = window_from_node(self).root();
let (w, h) = (self.width.get() as i32, self.height.get() as i32);
- let context = CanvasRenderingContext2D::new(&GlobalRef::Window(*window), self, Size2D(w, h));
- self.context.assign(Some(context));
- }
- self.context.get()
+ CanvasRenderingContext2D::new(&GlobalRef::Window(*window), self, Size2D(w, h))
+ }))
}
}