diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs index e2716bfca83..53da705f9c5 100644 --- a/src/components/script/dom/node.rs +++ b/src/components/script/dom/node.rs @@ -223,6 +223,10 @@ impl<'self, View> AbstractNode { /// Sets the layout data, unsafely casting the type as layout wishes. Only layout is allowed /// to call this. This is wildly unsafe and is therefore marked as such. pub unsafe fn unsafe_set_layout_data(self, data: @mut T) { + // Don't decrement the refcount on data, since we're giving it to the + // base structure. + cast::forget(data); + do self.with_mut_base |base| { base.layout_data = Some(transmute(data)) }