<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>22215</bug_id>
          
          <creation_ts>2008-11-12 15:11:55 -0800</creation_ts>
          <short_desc>Avoid calling absoluteClippedOverflowRect() so many times</short_desc>
          <delta_ts>2010-02-21 13:47:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>98530</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-11-12 15:11:55 -0800</bug_when>
    <thetext>There are a few places that call absoluteClippedOverflowRect(), then call repaintAfterLayoutIfNeeded() which computes the same rect again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98573</commentid>
    <comment_count>1</comment_count>
      <attachid>25113</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-11-12 18:21:21 -0800</bug_when>
    <thetext>Created attachment 25113
Patch

Avoid recomputing absoluteClippedOverflowRect() and absoluteOutlineBounds()
in  RenderObject::repaintAfterLayoutIfNeeded() if the caller has them to
hand and can pass them in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98574</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-11-12 18:22:00 -0800</bug_when>
    <thetext>I did some PLT testing with this patch, but the impact is in the noise on my Mac Pro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99543</commentid>
    <comment_count>3</comment_count>
      <attachid>25113</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-11-20 14:06:42 -0800</bug_when>
    <thetext>Comment on attachment 25113
Patch

Comments on the patch, even though it&apos;s been withdrawn from review.

&gt; +    // Repaint only if our old bounds and new bounds are different. bounds and outlineBox may be passed if known.
&gt; +    bool repaintAfterLayoutIfNeeded(const IntRect&amp; oldBounds, const IntRect&amp; oldOutlineBox, IntRect* bounds = 0, IntRect* outlineBox = 0);

These should be &quot;const IntRect*&quot;, since the recipient is being asked not to modify them.

&gt; -        repaintAfterLayoutIfNeeded(oldBounds, oldOutlineBox);
&gt; +        repaintAfterLayoutIfNeeded(oldBounds, oldOutlineBox);   // can we pass m_absoluteBounds?

I think this comment is a little too cryptic to check in: Who&apos;s asking the question and who would answer it? You could write a less cryptic comment, perhaps one that is a little more specific about why you&apos;re uncertain and what the benefit of passing it in would be. Maybe you can just leave it out for now. If you did want it in there, you should use our standard formatting, and use only one space before the command and capitalize the first word in the sentence.

&gt; +        repaintAfterLayoutIfNeeded(oldBounds, oldOutlineBox);       // can we pass m_absoluteBounds?

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192284</commentid>
    <comment_count>4</comment_count>
      <attachid>49160</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-02-21 12:02:04 -0800</bug_when>
    <thetext>Created attachment 49160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192287</commentid>
    <comment_count>5</comment_count>
      <attachid>49160</attachid>
    <who name="">mitz</who>
    <bug_when>2010-02-21 12:09:55 -0800</bug_when>
    <thetext>Comment on attachment 49160
Patch

Debug builds could continue to compute the values and assert that they are equal to the passed-in precomputed values, if present. I also think that the “Rect” suffix isn’t a very clear way to distinguish between the arguments and the local variables (which are also rects!). A “Ptr” suffix or “precomputed” prefix might be clearer.

P.S. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192302</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-02-21 13:47:33 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/55065</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25113</attachid>
            <date>2008-11-12 18:21:21 -0800</date>
            <delta_ts>2010-02-21 12:02:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>22215_patch.txt</filename>
            <type>text/plain</type>
            <size>7043</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTBiYTM0ZS4uY2Q5NjA1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAwOC0xMS0xMiAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIyMTUKKworICAgICAgICBBdm9pZCByZWNvbXB1dGluZyBhYnNvbHV0ZUNsaXBwZWRPdmVy
Zmxvd1JlY3QoKSBhbmQgYWJzb2x1dGVPdXRsaW5lQm91bmRzKCkKKyAgICAgICAgaW4gIFJlbmRl
ck9iamVjdDo6cmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQoKSBpZiB0aGUgY2FsbGVyIGhhcyB0
aGVtIHRvCisgICAgICAgIGhhbmQgYW5kIGNhbiBwYXNzIHRoZW0gaW4uCisgICAgICAgIAorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRm9yZWlnbk9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
b3JlaWduT2JqZWN0OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjpyZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQYXRo
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhdGg6OmxheW91dCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdDb250YWluZXI6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1Jv
b3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6bGF5b3V0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdUZXh0OjpsYXlvdXQpOgorCiAyMDA4LTExLTEyICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRp
LmNvbT4KIAogICAgICAgICBCdWlsZCBmaXhlcyBmb3IgcjM4MzQ2LiBGbG9hdFF1YWQuY3BwIGlz
IG1pc3Npbmc6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGb3JlaWduT2Jq
ZWN0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZvcmVpZ25PYmplY3QuY3BwCmluZGV4
IGM1MmMxNTcuLjMwOGYzNzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZv
cmVpZ25PYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZvcmVpZ25PYmpl
Y3QuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBSZW5kZXJGb3JlaWduT2JqZWN0OjpsYXlv
dXQoKQogICAgIG1fYWJzb2x1dGVCb3VuZHMgPSBhYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3Qo
KTsKIAogICAgIGlmIChjaGVja0ZvclJlcGFpbnQpCi0gICAgICAgIHJlcGFpbnRBZnRlckxheW91
dElmTmVlZGVkKG9sZEJvdW5kcywgb2xkT3V0bGluZUJveCk7CisgICAgICAgIHJlcGFpbnRBZnRl
ckxheW91dElmTmVlZGVkKG9sZEJvdW5kcywgb2xkT3V0bGluZUJveCwgJm1fYWJzb2x1dGVCb3Vu
ZHMpOwogCiAgICAgdmlldygpLT5lbmFibGVMYXlvdXRTdGF0ZSgpOwogICAgIHNldE5lZWRzTGF5
b3V0KGZhbHNlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAxMjBlMTIwLi42YTZm
OTNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMoYm9vbCBkb0Z1bGxSZXBhaW50LCBi
b29sIGNoZWNrRm9yUmVwYWludCkKICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1JlY3QgIT0g
bV9yZXBhaW50UmVjdCkKICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXctPnJlcGFpbnRWaWV3
UmVjdGFuZ2xlKG5ld1JlY3QpOwogICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgICAgICBtX29iamVjdC0+cmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQobV9yZXBhaW50UmVj
dCwgbV9vdXRsaW5lQm94KTsKKyAgICAgICAgICAgICAgICAgICAgbV9vYmplY3QtPnJlcGFpbnRB
ZnRlckxheW91dElmTmVlZGVkKG1fcmVwYWludFJlY3QsIG1fb3V0bGluZUJveCwgJm5ld1JlY3Qs
ICZuZXdPdXRsaW5lQm94KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBtX3Jl
cGFpbnRSZWN0ID0gbmV3UmVjdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDUx
ZTViMDIuLjkwNWMxZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTg4NCwx
MyArMTg4NCwxMyBAQCB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFJlY3RhbmdsZShjb25zdCBJ
bnRSZWN0JiByLCBib29sIGltbWVkaWF0ZSkKICAgICB2aWV3LT5yZXBhaW50Vmlld1JlY3Rhbmds
ZShhYnNSZWN0LCBpbW1lZGlhdGUpOwogfQogCi1ib29sIFJlbmRlck9iamVjdDo6cmVwYWludEFm
dGVyTGF5b3V0SWZOZWVkZWQoY29uc3QgSW50UmVjdCYgb2xkQm91bmRzLCBjb25zdCBJbnRSZWN0
JiBvbGRPdXRsaW5lQm94KQorYm9vbCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRBZnRlckxheW91dElm
TmVlZGVkKGNvbnN0IEludFJlY3QmIG9sZEJvdW5kcywgY29uc3QgSW50UmVjdCYgb2xkT3V0bGlu
ZUJveCwgSW50UmVjdCogYm91bmRzLCBJbnRSZWN0KiBvdXRsaW5lQm94KQogewogICAgIFJlbmRl
clZpZXcqIHYgPSB2aWV3KCk7CiAgICAgaWYgKHYtPnByaW50aW5nKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsgLy8gRG9uJ3QgcmVwYWludCBpZiB3ZSdyZSBwcmludGluZy4KIAotICAgIEludFJl
Y3QgbmV3Qm91bmRzID0gYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCk7CisgICAgSW50UmVj
dCBuZXdCb3VuZHMgPSBib3VuZHMgPyAqYm91bmRzIDogYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dS
ZWN0KCk7CiAgICAgSW50UmVjdCBuZXdPdXRsaW5lQm94OwogCiAgICAgYm9vbCBmdWxsUmVwYWlu
dCA9IHNlbGZOZWVkc0xheW91dCgpOwpAQCAtMTg5OCw3ICsxODk4LDcgQEAgYm9vbCBSZW5kZXJP
YmplY3Q6OnJlcGFpbnRBZnRlckxheW91dElmTmVlZGVkKGNvbnN0IEludFJlY3QmIG9sZEJvdW5k
cywgY29uc3QgSW4KICAgICBpZiAoIWZ1bGxSZXBhaW50ICYmIHN0eWxlKCktPmJvcmRlckZpdCgp
ID09IEJvcmRlckZpdExpbmVzKQogICAgICAgICBmdWxsUmVwYWludCA9IHRydWU7CiAgICAgaWYg
KCFmdWxsUmVwYWludCkgewotICAgICAgICBuZXdPdXRsaW5lQm94ID0gYWJzb2x1dGVPdXRsaW5l
Qm91bmRzKCk7CisgICAgICAgIG5ld091dGxpbmVCb3ggPSBvdXRsaW5lQm94ID8gKm91dGxpbmVC
b3ggOiBhYnNvbHV0ZU91dGxpbmVCb3VuZHMoKTsKICAgICAgICAgaWYgKG5ld091dGxpbmVCb3gu
bG9jYXRpb24oKSAhPSBvbGRPdXRsaW5lQm94LmxvY2F0aW9uKCkgfHwgKG11c3RSZXBhaW50QmFj
a2dyb3VuZE9yQm9yZGVyKCkgJiYgKG5ld0JvdW5kcyAhPSBvbGRCb3VuZHMgfHwgbmV3T3V0bGlu
ZUJveCAhPSBvbGRPdXRsaW5lQm94KSkpCiAgICAgICAgICAgICBmdWxsUmVwYWludCA9IHRydWU7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA5OWIyMzA5Li5lZWExM2RlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNzM5LDggKzczOSw4IEBAIHB1YmxpYzoKICAg
ICAvLyBSZXBhaW50IGEgc3BlY2lmaWMgc3VicmVjdGFuZ2xlIHdpdGhpbiBhIGdpdmVuIG9iamVj
dC4gIFRoZSByZWN0IHxyfCBpcyBpbiB0aGUgb2JqZWN0J3MgY29vcmRpbmF0ZSBzcGFjZS4KICAg
ICB2b2lkIHJlcGFpbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlID0g
ZmFsc2UpOwogCi0gICAgLy8gUmVwYWludCBvbmx5IGlmIG91ciBvbGQgYm91bmRzIGFuZCBuZXcg
Ym91bmRzIGFyZSBkaWZmZXJlbnQuCi0gICAgYm9vbCByZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRl
ZChjb25zdCBJbnRSZWN0JiBvbGRCb3VuZHMsIGNvbnN0IEludFJlY3QmIG9sZE91dGxpbmVCb3gp
OworICAgIC8vIFJlcGFpbnQgb25seSBpZiBvdXIgb2xkIGJvdW5kcyBhbmQgbmV3IGJvdW5kcyBh
cmUgZGlmZmVyZW50LiBib3VuZHMgYW5kIG91dGxpbmVCb3ggbWF5IGJlIHBhc3NlZCBpZiBrbm93
bi4KKyAgICBib29sIHJlcGFpbnRBZnRlckxheW91dElmTmVlZGVkKGNvbnN0IEludFJlY3QmIG9s
ZEJvdW5kcywgY29uc3QgSW50UmVjdCYgb2xkT3V0bGluZUJveCwgSW50UmVjdCogYm91bmRzID0g
MCwgSW50UmVjdCogb3V0bGluZUJveCA9IDApOwogCiAgICAgLy8gUmVwYWludCBvbmx5IGlmIHRo
ZSBvYmplY3QgbW92ZWQuCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnREdXJpbmdMYXlvdXRJZk1v
dmVkKGNvbnN0IEludFJlY3QmIHJlY3QpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUGF0aC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcAppbmRleCAw
NjdlNGY2Li4zYWE0NDc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRo
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcApAQCAtMTQwLDcgKzE0
MCw3IEBAIHZvaWQgUmVuZGVyUGF0aDo6bGF5b3V0KCkKICAgICBzZXRIZWlnaHQobV9hYnNvbHV0
ZUJvdW5kcy5oZWlnaHQoKSk7CiAKICAgICBpZiAoY2hlY2tGb3JSZXBhaW50KQotICAgICAgICBy
ZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChvbGRCb3VuZHMsIG9sZE91dGxpbmVCb3gpOworICAg
ICAgICByZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChvbGRCb3VuZHMsIG9sZE91dGxpbmVCb3gp
OyAgIC8vIGNhbiB3ZSBwYXNzIG1fYWJzb2x1dGVCb3VuZHM/CiAKICAgICBzZXROZWVkc0xheW91
dChmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdDb250
YWluZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAppbmRl
eCBhYTRmNDk2Li4wYWZhMDg5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
VkdDb250YWluZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5l
ci5jcHAKQEAgLTI1Nyw3ICsyNTcsNyBAQCB2b2lkIFJlbmRlclNWR0NvbnRhaW5lcjo6bGF5b3V0
KCkKICAgICBjYWxjQm91bmRzKCk7CiAKICAgICBpZiAoY2hlY2tGb3JSZXBhaW50KQotICAgICAg
ICByZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChvbGRCb3VuZHMsIG9sZE91dGxpbmVCb3gpOwor
ICAgICAgICByZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChvbGRCb3VuZHMsIG9sZE91dGxpbmVC
b3gsICZtX2Fic29sdXRlQm91bmRzKTsKIAogICAgIHZpZXcoKS0+ZW5hYmxlTGF5b3V0U3RhdGUo
KTsKICAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTVkdSb290LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3Qu
Y3BwCmluZGV4IDgzM2VjMzEuLmRhYzBhNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3Qu
Y3BwCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBSZW5kZXJTVkdSb290OjpsYXlvdXQoKQogICAg
IH0KIAogICAgIGlmIChjaGVja0ZvclJlcGFpbnQpCi0gICAgICAgIHJlcGFpbnRBZnRlckxheW91
dElmTmVlZGVkKG9sZEJvdW5kcywgb2xkT3V0bGluZUJveCk7CisgICAgICAgIHJlcGFpbnRBZnRl
ckxheW91dElmTmVlZGVkKG9sZEJvdW5kcywgb2xkT3V0bGluZUJveCk7ICAgICAgIC8vIGNhbiB3
ZSBwYXNzIG1fYWJzb2x1dGVCb3VuZHM/CiAKICAgICB2aWV3KCktPmVuYWJsZUxheW91dFN0YXRl
KCk7CiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0
LmNwcAppbmRleCAwZDIzYmNiLi45YTJjNDQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTVkdUZXh0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0
LmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6bGF5b3V0KCkKIAog
ICAgIGJvb2wgcmVwYWludGVkID0gZmFsc2U7CiAgICAgaWYgKGNoZWNrRm9yUmVwYWludCkKLSAg
ICAgICAgcmVwYWludGVkID0gcmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQob2xkQm91bmRzLCBv
bGRPdXRsaW5lQm94KTsKKyAgICAgICAgcmVwYWludGVkID0gcmVwYWludEFmdGVyTGF5b3V0SWZO
ZWVkZWQob2xkQm91bmRzLCBvbGRPdXRsaW5lQm94LCAmbV9hYnNvbHV0ZUJvdW5kcyk7CiAgICAg
CiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49160</attachid>
            <date>2010-02-21 12:02:04 -0800</date>
            <delta_ts>2010-02-21 12:09:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-22215-20100221120202.patch</filename>
            <type>text/plain</type>
            <size>4599</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmYxNjVhYS4uYzEzZjRhNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wMi0yMSAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIyMTUKKyAgICAgICAgQXZvaWQgY2FsbGluZyBhYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1Jl
Y3QoKSBzbyBtYW55IHRpbWVzCisKKyAgICAgICAgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9z
aXRpb25zKCkgY29tcHV0ZXMgdGhlIGNsaXBwZWQgb3ZlcmZsb3cgcmVjdAorICAgICAgICBhbmQg
dGhlIG91dGxpbmUgYm91bmRzIGZvciByZXBhaW50LCBhbmQgdGhlbiBjYWxscyByZXBhaW50QWZ0
ZXJMYXlvdXRJZk5lZWRlZCgpCisgICAgICAgIHdoaWNoIGNhbiBjb21wdXRlIHRoZSBzYW1lIHJl
Y3RzIGFsbCBvdmVyIGFnYWluLiBBdm9pZCB0aGlzIGJ5IHBhc3NpbmcKKyAgICAgICAgdGhlc2Ug
dHdvIHJlY3RzIGludG8gcmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQoKSBpZiBrbm93bi4gVGhp
cyBtZWFzdXJhYmx5CisgICAgICAgIHJlZHVjZXMgdGhlIHRpbWUgc3BlbnQgaW4gdXBkYXRlTGF5
ZXJQb3NpdGlvbnMoKSBmb3Igc29tZSBjb250ZW50LgorCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVMYXll
clBvc2l0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnRBZnRlckxheW91dElmTmVlZGVkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisKIDIwMTAtMDItMTggIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTm8gUmV2aWV3Lgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGZmMDc3OTIuLjY0ZWU3MjkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lkIFJlbmRlckxheWVy
Ojp1cGRhdGVMYXllclBvc2l0aW9ucyhVcGRhdGVMYXllclBvc2l0aW9uc0ZsYWdzIGZsYWdzKQog
ICAgICAgICAgICAgICAgICAgICBpZiAobmV3UmVjdCAhPSBtX3JlcGFpbnRSZWN0KQogICAgICAg
ICAgICAgICAgICAgICAgICAgcmVuZGVyZXIoKS0+cmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFp
bnRDb250YWluZXIsIG5ld1JlY3QpOwogICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChyZXBhaW50
Q29udGFpbmVyLCBtX3JlcGFpbnRSZWN0LCBtX291dGxpbmVCb3gpOworICAgICAgICAgICAgICAg
ICAgICByZW5kZXJlcigpLT5yZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChyZXBhaW50Q29udGFp
bmVyLCBtX3JlcGFpbnRSZWN0LCBtX291dGxpbmVCb3gsICZuZXdSZWN0LCAmbmV3T3V0bGluZUJv
eCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgbV9yZXBhaW50UmVjdCA9IG5l
d1JlY3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBkN2NlM2MzLi41OTNlOGQ3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTExNzksMTMgKzExNzksMTMgQEAg
dm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgciwgYm9v
bCBpbW1lZGlhdGUpCiAgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIg
PyByZXBhaW50Q29udGFpbmVyIDogdmlldywgZGlydHlSZWN0LCBpbW1lZGlhdGUpOwogfQogCi1i
b29sIFJlbmRlck9iamVjdDo6cmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQoUmVuZGVyQm94TW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IEludFJlY3QmIG9sZEJvdW5kcywgY29u
c3QgSW50UmVjdCYgb2xkT3V0bGluZUJveCkKK2Jvb2wgUmVuZGVyT2JqZWN0OjpyZXBhaW50QWZ0
ZXJMYXlvdXRJZk5lZWRlZChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
Y29uc3QgSW50UmVjdCYgb2xkQm91bmRzLCBjb25zdCBJbnRSZWN0JiBvbGRPdXRsaW5lQm94LCBj
b25zdCBJbnRSZWN0KiBuZXdCb3VuZHNSZWN0LCBjb25zdCBJbnRSZWN0KiBuZXdPdXRsaW5lQm94
UmVjdCkKIHsKICAgICBSZW5kZXJWaWV3KiB2ID0gdmlldygpOwogICAgIGlmICh2LT5wcmludGlu
ZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7IC8vIERvbid0IHJlcGFpbnQgaWYgd2UncmUgcHJp
bnRpbmcuCiAKLSAgICBJbnRSZWN0IG5ld0JvdW5kcyA9IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JS
ZXBhaW50KHJlcGFpbnRDb250YWluZXIpOworICAgIEludFJlY3QgbmV3Qm91bmRzID0gbmV3Qm91
bmRzUmVjdCA/ICpuZXdCb3VuZHNSZWN0IDogY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
cmVwYWludENvbnRhaW5lcik7CiAgICAgSW50UmVjdCBuZXdPdXRsaW5lQm94OwogCiAgICAgYm9v
bCBmdWxsUmVwYWludCA9IHNlbGZOZWVkc0xheW91dCgpOwpAQCAtMTE5Myw3ICsxMTkzLDcgQEAg
Ym9vbCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRBZnRlckxheW91dElmTmVlZGVkKFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGEKICAgICBpZiAoIWZ1bGxSZXBhaW50ICYmIHN0eWxlKCkt
PmJvcmRlckZpdCgpID09IEJvcmRlckZpdExpbmVzKQogICAgICAgICBmdWxsUmVwYWludCA9IHRy
dWU7CiAgICAgaWYgKCFmdWxsUmVwYWludCkgewotICAgICAgICBuZXdPdXRsaW5lQm94ID0gb3V0
bGluZUJvdW5kc0ZvclJlcGFpbnQocmVwYWludENvbnRhaW5lcik7CisgICAgICAgIG5ld091dGxp
bmVCb3ggPSBuZXdPdXRsaW5lQm94UmVjdCA/ICpuZXdPdXRsaW5lQm94UmVjdCA6IG91dGxpbmVC
b3VuZHNGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIpOwogICAgICAgICBpZiAobmV3T3V0bGlu
ZUJveC5sb2NhdGlvbigpICE9IG9sZE91dGxpbmVCb3gubG9jYXRpb24oKSB8fCAobXVzdFJlcGFp
bnRCYWNrZ3JvdW5kT3JCb3JkZXIoKSAmJiAobmV3Qm91bmRzICE9IG9sZEJvdW5kcyB8fCBuZXdP
dXRsaW5lQm94ICE9IG9sZE91dGxpbmVCb3gpKSkKICAgICAgICAgICAgIGZ1bGxSZXBhaW50ID0g
dHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDc5MWQ0ZDAuLjliODI3
YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC02MTYsOCArNjE2LDggQEAgcHVibGlj
OgogICAgIC8vIFJlcGFpbnQgYSBzcGVjaWZpYyBzdWJyZWN0YW5nbGUgd2l0aGluIGEgZ2l2ZW4g
b2JqZWN0LiAgVGhlIHJlY3QgfHJ8IGlzIGluIHRoZSBvYmplY3QncyBjb29yZGluYXRlIHNwYWNl
LgogICAgIHZvaWQgcmVwYWludFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiwgYm9vbCBpbW1lZGlh
dGUgPSBmYWxzZSk7CiAKLSAgICAvLyBSZXBhaW50IG9ubHkgaWYgb3VyIG9sZCBib3VuZHMgYW5k
IG5ldyBib3VuZHMgYXJlIGRpZmZlcmVudC4KLSAgICBib29sIHJlcGFpbnRBZnRlckxheW91dElm
TmVlZGVkKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBJbnRS
ZWN0JiBvbGRCb3VuZHMsIGNvbnN0IEludFJlY3QmIG9sZE91dGxpbmVCb3gpOworICAgIC8vIFJl
cGFpbnQgb25seSBpZiBvdXIgb2xkIGJvdW5kcyBhbmQgbmV3IGJvdW5kcyBhcmUgZGlmZmVyZW50
LiBUaGUgY2FsbGVyIG1heSBwYXNzIGluIG5ld0JvdW5kcyBhbmQgbmV3T3V0bGluZUJveCBpZiB0
aGV5IGFyZSBrbm93bi4KKyAgICBib29sIHJlcGFpbnRBZnRlckxheW91dElmTmVlZGVkKFJlbmRl
ckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBJbnRSZWN0JiBvbGRCb3Vu
ZHMsIGNvbnN0IEludFJlY3QmIG9sZE91dGxpbmVCb3gsIGNvbnN0IEludFJlY3QqIG5ld0JvdW5k
cyA9IDAsIGNvbnN0IEludFJlY3QqIG5ld091dGxpbmVCb3ggPSAwKTsKIAogICAgIC8vIFJlcGFp
bnQgb25seSBpZiB0aGUgb2JqZWN0IG1vdmVkLgogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50RHVy
aW5nTGF5b3V0SWZNb3ZlZChjb25zdCBJbnRSZWN0JiByZWN0KTsK
</data>
<flag name="review"
          id="31941"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>