From 708f9b4db5116fc472c3a575dbd2a0dc84f3beee Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 30 May 2013 18:14:50 -0700 Subject: [PATCH] Fix method names and dynamic borrow check failures --- src/components/main/layout/box.rs | 15 +++++++++------ src/components/main/layout/model.rs | 10 +++++----- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/components/main/layout/box.rs b/src/components/main/layout/box.rs index 6033a924bfc..4e79a6205ab 100644 --- a/src/components/main/layout/box.rs +++ b/src/components/main/layout/box.rs @@ -449,14 +449,14 @@ pub impl RenderBox { } fn compute_padding(&self, cb_width: Au) { - do self.with_imm_base |base| { - base.model.compute_padding(self.style(), cb_width); + do self.with_mut_base |base| { + base.model.compute_padding(base.node.style(), cb_width); } } fn compute_borders(&self){ - do self.with_imm_base |base| { - base.model.compute_borders(self.style()); + do self.with_mut_base |base| { + base.model.compute_borders(base.node.style()); } } @@ -467,7 +467,8 @@ pub impl RenderBox { } } - fn compute_width (&self, cb_width: Au, + fn compute_width(&self, + cb_width: Au, callback: &fn(MaybeAuto, MaybeAuto, MaybeAuto) -> (Au, Au, Au)) { let computed_width = MaybeAuto::from_width(self.style().width()); let computed_margin_left = MaybeAuto::from_margin(self.style().margin_left()); @@ -476,10 +477,12 @@ pub impl RenderBox { let (used_width, used_margin_left, used_margin_right) = callback(computed_width, computed_margin_left, computed_margin_right); + let noncontent_width = self.get_noncontent_width(); + do self.with_mut_base |base| { base.model.margin.left = used_margin_left; base.model.margin.right = used_margin_right; - base.position.size.width = used_width + self.get_noncontent_width(); + base.position.size.width = used_width + noncontent_width; base.position.origin.x = used_margin_left; } } diff --git a/src/components/main/layout/model.rs b/src/components/main/layout/model.rs index d0fb4ec083d..9ed6a5b8de4 100644 --- a/src/components/main/layout/model.rs +++ b/src/components/main/layout/model.rs @@ -96,10 +96,10 @@ impl BoxModel { } pub fn compute_padding(&mut self, style: CompleteStyle, cb_width: Au){ - self.padding.top = self.compute_padding(style.padding_top(), cb_width); - self.padding.right = self.compute_padding(style.padding_right(), cb_width); - self.padding.bottom = self.compute_padding(style.padding_bottom(), cb_width); - self.padding.left = self.compute_padding(style.padding_left(), cb_width); + self.padding.top = self.compute_padding_length(style.padding_top(), cb_width); + self.padding.right = self.compute_padding_length(style.padding_right(), cb_width); + self.padding.bottom = self.compute_padding_length(style.padding_bottom(), cb_width); + self.padding.left = self.compute_padding_length(style.padding_left(), cb_width); } /// Helper function to compute the border width in app units from the CSS border width. @@ -117,7 +117,7 @@ impl BoxModel { } } - fn compute_padding(&self, padding: CSSPadding, cb_width: Au) -> Au{ + fn compute_padding_length(&self, padding: CSSPadding, cb_width: Au) -> Au{ match padding { CSSPaddingLength(Px(v)) | CSSPaddingLength(Pt(v)) |