[squeak-dev] The Inbox: Morphic-dtl.634.mcz
David T. Lewis
lewis at mail.msen.com
Mon Jan 14 04:12:11 UTC 2013
On Sun, Jan 13, 2013 at 07:53:07PM -0600, Chris Muller wrote:
> Thanks Dave, I'll try it out with Maui. Would the reason there might
> be potential performance issues be due to the call to outerBounds or
> the fact that it is more liberal with invalidating regions and
> therefore causing more drawing code to run?
Yes, possibly so. But really I just want a second set of eyes on it because
it is a seemingly trivial change to a part of the system that I do not know
well, so there is a risk of side effects that I might not understand. I do
not know how to measure the performance impact (if any) of this change, and
I have learned that assuming "this would not hurt anything" can sometimes
be a bad idea.
Thanks for looking at it.
> On Sun, Jan 13, 2013 at 12:53 PM, David T. Lewis <lewis at mail.msen.com> wrote:
> > This is a fix for the "very old buglet" reported by Bob Arning. I'd appreciate
> > if someone could review this before I move it to trunk, as it may have performance
> > implications.
> > Dave
> > On Sun, Jan 13, 2013 at 06:49:13PM +0000, commits at source.squeak.org wrote:
> >> A new version of Morphic was added to project The Inbox:
> >> http://source.squeak.org/inbox/Morphic-dtl.634.mcz
> >> ==================== Summary ====================
> >> Name: Morphic-dtl.634
> >> Author: dtl
> >> Time: 13 January 2013, 1:48:33.942 pm
> >> UUID: 02716c40-7437-458c-80ff-22679fcd3c04
> >> Ancestors: Morphic-dtl.633
> >> Fix for Morphic layout bug reported by Bob Arning in http://lists.squeakfoundation.org/pipermail/squeak-dev/2013-January/167757.html
> >> Invalidate changed regions in Morph>>layoutBounds: in the same manner as in Morph>>doLayoutIn:
> >> =============== Diff against Morphic-dtl.633 ===============
> >> Item was changed:
> >> ----- Method: Morph>>layoutBounds: (in category 'layout') -----
> >> layoutBounds: aRectangle
> >> "Set the bounds for laying out children of the receiver.
> >> Note: written so that #layoutBounds can be changed without touching this method"
> >> + | priorBounds outer inner box |
> >> + priorBounds := self outerBounds.
> >> - | outer inner |
> >> outer := self bounds.
> >> inner := self layoutBounds.
> >> bounds := aRectangle origin + (outer origin - inner origin) corner:
> >> + aRectangle corner + (outer corner - inner corner).
> >> + box := self outerBounds.
> >> + box = priorBounds
> >> + ifFalse: [self invalidRect: (priorBounds quickMerge: box)]!
> >> - aRectangle corner + (outer corner - inner corner).!
More information about the Squeak-dev