diff options
author | bors-servo <metajack+bors@gmail.com> | 2014-12-31 07:33:46 -0700 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2014-12-31 07:33:46 -0700 |
commit | 841f1b6f2559e7a33a1517fba53c12bbd67ed44f (patch) | |
tree | a09f8949b708da63057055dba5edf00882d9f83a /components/script/dom | |
parent | 0da57abec6014f8a6edde9781598053deab996c7 (diff) | |
parent | 2669dac3122dc0b25949fd617d301f3fab0a3cc3 (diff) | |
download | servo-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.rs | 10 |
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)) + })) } } |