<?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>60724</bug_id>
          
          <creation_ts>2011-05-12 13:56:39 -0700</creation_ts>
          <short_desc>Add InlineWalker class to hold state for repeated calls to bidiNext</short_desc>
          <delta_ts>2011-06-04 12:34:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>50912</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>hyatt</cc>
    
    <cc>leviw</cc>
    
    <cc>leviw</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>403124</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-12 13:56:39 -0700</bug_when>
    <thetext>Add InlineWalker class to hold state for repeated calls to bidiNext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403128</commentid>
    <comment_count>1</comment_count>
      <attachid>93332</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-12 13:58:46 -0700</bug_when>
    <thetext>Created attachment 93332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403157</commentid>
    <comment_count>2</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-12 14:20:40 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=93332&amp;action=review

This is a great step in the right direction!

&gt; Source/WebCore/ChangeLog:8
&gt; +        This is one more little step towards removing (naked) bidiNext usage.

Awesome!

&gt; Source/WebCore/rendering/InlineIterator.h:251
&gt; +    InlineWalker(RenderObject* root, bool skipInlines = true, InlineBidiResolver* observer = 0)

An enum for skipInlines would be more informative, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403158</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-12 14:22:20 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebCore/rendering/InlineIterator.h:251
&gt; &gt; +    InlineWalker(RenderObject* root, bool skipInlines = true, InlineBidiResolver* observer = 0)
&gt; 
&gt; An enum for skipInlines would be more informative, no?

So true!  Will fix in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403704</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-13 11:37:55 -0700</bug_when>
    <thetext>@rniwa: ping.  This is not the end of this refactoring, but I do think it&apos;s better than what we have today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403716</commentid>
    <comment_count>5</comment_count>
      <attachid>93332</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-13 11:50:27 -0700</bug_when>
    <thetext>Comment on attachment 93332
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=93332&amp;action=review

&gt; Source/WebCore/rendering/InlineIterator.h:251
&gt; +    InlineWalker(RenderObject* root, bool skipInlines = true, InlineBidiResolver* observer = 0)

Should the first argument be RenderBlock since we always pass &quot;this&quot;?  Or do you have a plan to use it elsewhere?  And I concur Levi&apos;s point that we should use enum for skipInlines but skipInlines is always false in this version so I would have got rid of the argument altogether and waited until the next patch that actually make use of this argument.  The same goes for observer.  Since we&apos;re not using this argument at the moment, I don&apos;t think we should be adding it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410201</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-25 22:40:08 -0700</bug_when>
    <thetext>Eric, are you going to upload a new patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410383</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-26 06:22:38 -0700</bug_when>
    <thetext>Best to r- it if you want me to do that. :)  I&apos;d forgotten about this bug.  Distracted by other things at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413109</commentid>
    <comment_count>8</comment_count>
      <attachid>93332</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-05-31 20:37:46 -0700</bug_when>
    <thetext>Comment on attachment 93332
Patch

r- to encourage eseidel to upload his new patch, and to resolve the question of enum-versus-next-release for the skipInlines argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415511</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-04 11:29:59 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 93332 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93332&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/InlineIterator.h:251
&gt; &gt; +    InlineWalker(RenderObject* root, bool skipInlines = true, InlineBidiResolver* observer = 0)
&gt; 
&gt; Should the first argument be RenderBlock since we always pass &quot;this&quot;?

No.  There is no reason to limit the walk under a RenderBlock.  It&apos;s any RenderObject subtree.

&gt; Or do you have a plan to use it elsewhere?

bidi-isolate fixes use this elsewhere, yes.

&gt; And I concur Levi&apos;s point that we should use enum for skipInlines but skipInlines is always false in this version so I would have got rid of the argument altogether and waited until the next patch that actually make use of this argument.  The same goes for observer.  Since we&apos;re not using this argument at the moment, I don&apos;t think we should be adding it.

Sure, will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415512</commentid>
    <comment_count>10</comment_count>
      <attachid>96028</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-04 11:50:18 -0700</bug_when>
    <thetext>Created attachment 96028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415513</commentid>
    <comment_count>11</comment_count>
      <attachid>96028</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-04 11:53:17 -0700</bug_when>
    <thetext>Comment on attachment 96028
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415521</commentid>
    <comment_count>12</comment_count>
      <attachid>96028</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-04 12:34:41 -0700</bug_when>
    <thetext>Comment on attachment 96028
Patch

Clearing flags on attachment: 96028

Committed r88122: &lt;http://trac.webkit.org/changeset/88122&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415522</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-04 12:34:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93332</attachid>
            <date>2011-05-12 13:58:46 -0700</date>
            <delta_ts>2011-06-04 11:50:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60724-20110512135845.patch</filename>
            <type>text/plain</type>
            <size>5990</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYzNzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMTA3NzQ2NjNlOTc2YWUz
OGM4MzZhNDA5ZjQxMDc1NGU0NjQzZWZmLi4zNjZmMjYwZmYyZTRlMTIyNmVlNTEyNDM3ZmJkMzFk
NDE3NDJkNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDUtMTIgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBJbmxpbmVXYWxrZXIgY2xhc3MgdG8gaG9sZCBzdGF0ZSBm
b3IgcmVwZWF0ZWQgY2FsbHMgdG8gYmlkaU5leHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzI0CisKKyAgICAgICAgVGhpcyBpcyBvbmUgbW9yZSBs
aXR0bGUgc3RlcCB0b3dhcmRzIHJlbW92aW5nIChuYWtlZCkgYmlkaU5leHQgdXNhZ2UuCisgICAg
ICAgIE1vcmUgcmVmYWN0b3JpbmcgaXMgcmVxdWlyZWQgYmVmb3JlIGFsbCBjYWxsZXJzIG9mIGJp
ZGlOZXh0IGNhbiBtb3ZlCisgICAgICAgIG9udG8gdXNpbmcgYW4gSW5saW5lV2Fsa2VyIGluc3Rl
YWQgb2YgYmlkaU5leHQgZGlyZWN0bHkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9y
LCB0aHVzIG5vIHRlc3RzLgorCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVXYWxrZXI6OklubGluZVdhbGtlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVXYWxrZXI6OnJvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
V2Fsa2VyOjpjdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVdhbGtlcjo6YXRFbmRP
ZklubGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVXYWxrZXI6OmF0RW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZVdhbGtlcjo6YWR2YW5jZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzaW1wbGlm
aWVkTm9ybWFsRmxvd0xheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5l
Q2hpbGRyZW4pOgorCiAyMDExLTA1LTEyICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVJdGVyYXRvci5oCmluZGV4IDI5ZTg1M2ViNDc3YzczMDhjNzc1MjA0N2Fm
NTE5M2QzNjc5NDNmYjEuLmVmM2ZlMjg0Y2I4ZDQ2ZTViMjA0NDUyZGMyNThiODRjY2U5ODkzYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oCkBAIC0yNDYsNiAr
MjQ2LDQwIEBAIGlubGluZSB2b2lkIElubGluZUl0ZXJhdG9yOjpmYXN0SW5jcmVtZW50SW5UZXh0
Tm9kZSgpCiAgICAgbV9wb3MrKzsKIH0KIAorY2xhc3MgSW5saW5lV2Fsa2VyIHsKK3B1YmxpYzoK
KyAgICBJbmxpbmVXYWxrZXIoUmVuZGVyT2JqZWN0KiByb290LCBib29sIHNraXBJbmxpbmVzID0g
dHJ1ZSwgSW5saW5lQmlkaVJlc29sdmVyKiBvYnNlcnZlciA9IDApCisgICAgICAgIDogbV9yb290
KHJvb3QpCisgICAgICAgICwgbV9jdXJyZW50KDApCisgICAgICAgICwgbV9vYnNlcnZlcihvYnNl
cnZlcikKKyAgICAgICAgLCBtX3NraXBJbmxpbmVzKHNraXBJbmxpbmVzKQorICAgICAgICAsIG1f
YXRFbmRPZklubGluZShmYWxzZSkKKyAgICB7CisgICAgICAgIGlmIChza2lwSW5saW5lcykKKyAg
ICAgICAgICAgIG1fY3VycmVudCA9IGJpZGlGaXJzdFNraXBwaW5nSW5saW5lcyhtX3Jvb3QsIG1f
b2JzZXJ2ZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2N1cnJlbnQgPSBiaWRpRmly
c3ROb3RTa2lwcGluZ0lubGluZXMobV9yb290KTsKKyAgICB9CisKKyAgICBSZW5kZXJPYmplY3Qq
IHJvb3QoKSB7IHJldHVybiBtX3Jvb3Q7IH0KKyAgICBSZW5kZXJPYmplY3QqIGN1cnJlbnQoKSB7
IHJldHVybiBtX2N1cnJlbnQ7IH0KKworICAgIGJvb2wgYXRFbmRPZklubGluZSgpIHsgcmV0dXJu
IG1fYXRFbmRPZklubGluZTsgfQorICAgIGJvb2wgYXRFbmQoKSBjb25zdCB7IHJldHVybiAhbV9j
dXJyZW50OyB9CisKKyAgICBSZW5kZXJPYmplY3QqIGFkdmFuY2UoKQorICAgIHsKKyAgICAgICAg
bV9jdXJyZW50ID0gYmlkaU5leHQobV9yb290LCBtX2N1cnJlbnQsIG1fb2JzZXJ2ZXIsIG1fc2tp
cElubGluZXMsICZtX2F0RW5kT2ZJbmxpbmUpOworICAgICAgICByZXR1cm4gbV9jdXJyZW50Owor
ICAgIH0KK3ByaXZhdGU6CisgICAgUmVuZGVyT2JqZWN0KiBtX3Jvb3Q7CisgICAgUmVuZGVyT2Jq
ZWN0KiBtX2N1cnJlbnQ7CisgICAgSW5saW5lQmlkaVJlc29sdmVyKiBtX29ic2VydmVyOworICAg
IGJvb2wgbV9za2lwSW5saW5lczsKKyAgICBib29sIG1fYXRFbmRPZklubGluZTsKK307CisKIGlu
bGluZSB2b2lkIElubGluZUl0ZXJhdG9yOjppbmNyZW1lbnQoSW5saW5lQmlkaVJlc29sdmVyKiBy
ZXNvbHZlcikKIHsKICAgICBpZiAoIW1fb2JqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKaW5kZXggZWIwOTUwYjRkZWZiYmZlMTQzMTgyNGIxYmE1NDFmMzQxN2I5ZmYz
Ny4uNWIyMzllYTljOGI2NmM1YzdiYTJmZGM2NDBjNGNjOTZhNGQ5ODQ1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0yMDkxLDE4ICsyMDkxLDE2IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OnNpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KCkKIHsKICAgICBpZiAo
Y2hpbGRyZW5JbmxpbmUoKSkgewogICAgICAgICBMaXN0SGFzaFNldDxSb290SW5saW5lQm94Kj4g
bGluZUJveGVzOwotICAgICAgICBib29sIGVuZE9mSW5saW5lID0gZmFsc2U7Ci0gICAgICAgIFJl
bmRlck9iamVjdCogbyA9IGJpZGlGaXJzdE5vdFNraXBwaW5nSW5saW5lcyh0aGlzKTsKLSAgICAg
ICAgd2hpbGUgKG8pIHsKKyAgICAgICAgZm9yIChJbmxpbmVXYWxrZXIgd2Fsa2VyKHRoaXMsIGZh
bHNlKTsgIXdhbGtlci5hdEVuZCgpOyB3YWxrZXIuYWR2YW5jZSgpKSB7CisgICAgICAgICAgICBS
ZW5kZXJPYmplY3QqIG8gPSB3YWxrZXIuY3VycmVudCgpOwogICAgICAgICAgICAgaWYgKCFvLT5p
c1Bvc2l0aW9uZWQoKSAmJiAoby0+aXNSZXBsYWNlZCgpIHx8IG8tPmlzRmxvYXRpbmcoKSkpIHsK
ICAgICAgICAgICAgICAgICBvLT5sYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICAgICAgICAgIGlm
ICh0b1JlbmRlckJveChvKS0+aW5saW5lQm94V3JhcHBlcigpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIFJvb3RJbmxpbmVCb3gqIGJveCA9IHRvUmVuZGVyQm94KG8pLT5pbmxpbmVCb3hXcmFwcGVy
KCktPnJvb3QoKTsKICAgICAgICAgICAgICAgICAgICAgbGluZUJveGVzLmFkZChib3gpOwogICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoby0+aXNUZXh0KCkgfHwgKG8t
PmlzUmVuZGVySW5saW5lKCkgJiYgIWVuZE9mSW5saW5lKSkKKyAgICAgICAgICAgIH0gZWxzZSBp
ZiAoby0+aXNUZXh0KCkgfHwgKG8tPmlzUmVuZGVySW5saW5lKCkgJiYgIXdhbGtlci5hdEVuZE9m
SW5saW5lKCkpKQogICAgICAgICAgICAgICAgIG8tPnNldE5lZWRzTGF5b3V0KGZhbHNlKTsKLSAg
ICAgICAgICAgIG8gPSBiaWRpTmV4dCh0aGlzLCBvLCAwLCBmYWxzZSwgJmVuZE9mSW5saW5lKTsK
ICAgICAgICAgfQogCiAgICAgICAgIC8vIEZJWE1FOiBHbHlwaCBvdmVyZmxvdyB3aWxsIGdldCBs
b3N0IGluIHRoaXMgY2FzZSwgYnV0IG5vdCByZWFsbHkgYSBiaWcgZGVhbC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggNWMx
MjE2Njk4YjFmZjhkYTFjYmRhMzgwOTVjODk4Y2RkNjY4YTg3Ni4uZWUyYTUxOTc0ZjUxODQ4YTRh
ZmIwYWI4ODhlZWQ0MjI0ZWE0NDk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTExMjAsMTEgKzExMjAsMTAgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVu
LCBpbnQmIHJlcGFpbnRMb2dpY2EKIAogICAgIGlmIChmaXJzdENoaWxkKCkpIHsKICAgICAgICAg
Ly8gbGF5b3V0IHJlcGxhY2VkIGVsZW1lbnRzCi0gICAgICAgIGJvb2wgZW5kT2ZJbmxpbmUgPSBm
YWxzZTsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiBvID0gYmlkaUZpcnN0Tm90U2tpcHBpbmdJbmxp
bmVzKHRoaXMpOwogICAgICAgICBWZWN0b3I8RmxvYXRXaXRoUmVjdD4gZmxvYXRzOwogICAgICAg
ICBib29sIGhhc0lubGluZUNoaWxkID0gZmFsc2U7Ci0gICAgICAgIHdoaWxlIChvKSB7CisgICAg
ICAgIGZvciAoSW5saW5lV2Fsa2VyIHdhbGtlcih0aGlzLCBmYWxzZSk7ICF3YWxrZXIuYXRFbmQo
KTsgd2Fsa2VyLmFkdmFuY2UoKSkgeworICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBvID0gd2Fs
a2VyLmN1cnJlbnQoKTsKICAgICAgICAgICAgIGlmICghaGFzSW5saW5lQ2hpbGQgJiYgby0+aXNJ
bmxpbmUoKSkKICAgICAgICAgICAgICAgICBoYXNJbmxpbmVDaGlsZCA9IHRydWU7CiAKQEAgLTEx
NDcsMTQgKzExNDYsMTMgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4o
Ym9vbCByZWxheW91dENoaWxkcmVuLCBpbnQmIHJlcGFpbnRMb2dpY2EKICAgICAgICAgICAgICAg
ICAgICAgdG9SZW5kZXJCb3gobyktPmRpcnR5TGluZUJveGVzKGZ1bGxMYXlvdXQpOwogICAgICAg
ICAgICAgICAgICAgICBvLT5sYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0gZWxzZSBpZiAoby0+aXNUZXh0KCkgfHwgKG8tPmlzUmVuZGVySW5saW5lKCkg
JiYgIWVuZE9mSW5saW5lKSkgeworICAgICAgICAgICAgfSBlbHNlIGlmIChvLT5pc1RleHQoKSB8
fCAoby0+aXNSZW5kZXJJbmxpbmUoKSAmJiAhd2Fsa2VyLmF0RW5kT2ZJbmxpbmUoKSkpIHsKICAg
ICAgICAgICAgICAgICBpZiAoIW8tPmlzVGV4dCgpKQogICAgICAgICAgICAgICAgICAgICB0b1Jl
bmRlcklubGluZShvKS0+dXBkYXRlQWx3YXlzQ3JlYXRlTGluZUJveGVzKCk7CiAgICAgICAgICAg
ICAgICAgaWYgKGZ1bGxMYXlvdXQgfHwgby0+c2VsZk5lZWRzTGF5b3V0KCkpCiAgICAgICAgICAg
ICAgICAgICAgIGRpcnR5TGluZUJveGVzRm9yUmVuZGVyZXIobywgZnVsbExheW91dCk7CiAgICAg
ICAgICAgICAgICAgby0+c2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgbyA9IGJpZGlOZXh0KHRoaXMsIG8sIDAsIGZhbHNlLCAmZW5kT2ZJbmxpbmUpOwog
ICAgICAgICB9CiAKICAgICAgICAgbGF5b3V0UnVuc0FuZEZsb2F0cyhmdWxsTGF5b3V0LCBoYXNJ
bmxpbmVDaGlsZCwgZmxvYXRzLCByZXBhaW50TG9naWNhbFRvcCwgcmVwYWludExvZ2ljYWxCb3R0
b20pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96028</attachid>
            <date>2011-06-04 11:50:18 -0700</date>
            <delta_ts>2011-06-04 12:34:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60724-20110604115016.patch</filename>
            <type>text/plain</type>
            <size>5959</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgwMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMjA0NjEwZjQ3ODI5YzQ4
MThiZTM3NjZjNmViZjJmM2EzOWQzODIyLi5jNGNjYTVkOWZiNDc5MDQ5MjJjNTEyODUyM2RlMDg4
NjY2MDFmZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDYtMDMgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBJbmxpbmVXYWxrZXIgY2xhc3MgdG8gaG9sZCBzdGF0ZSBm
b3IgcmVwZWF0ZWQgY2FsbHMgdG8gYmlkaU5leHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzI0CisKKyAgICAgICAgVGhpcyBpcyBvbmUgbW9yZSBs
aXR0bGUgc3RlcCB0b3dhcmRzIHJlbW92aW5nIChuYWtlZCkgYmlkaU5leHQgdXNhZ2UuCisgICAg
ICAgIE1vcmUgcmVmYWN0b3JpbmcgaXMgcmVxdWlyZWQgYmVmb3JlIGFsbCBjYWxsZXJzIG9mIGJp
ZGlOZXh0IGNhbiBtb3ZlCisgICAgICAgIG9udG8gdXNpbmcgYW4gSW5saW5lV2Fsa2VyIGluc3Rl
YWQgb2YgYmlkaU5leHQgZGlyZWN0bHkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9y
LCB0aHVzIG5vIHRlc3RzLgorCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVXYWxrZXI6OklubGluZVdhbGtlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVXYWxrZXI6OnJvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
V2Fsa2VyOjpjdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVdhbGtlcjo6YXRFbmRP
ZklubGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVXYWxrZXI6OmF0RW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZVdhbGtlcjo6YWR2YW5jZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzaW1wbGlm
aWVkTm9ybWFsRmxvd0xheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5l
Q2hpbGRyZW4pOgorCiAyMDExLTA2LTAzICBTaWRkaGFydGggTWF0aHVyICA8c2lkZGhhcnRoLm1h
dGh1ckBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmVuamFtaW4gUG91bGFpbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUl0ZXJhdG9yLmgKaW5kZXggMjllODUzZWI0
NzdjNzMwOGM3NzUyMDQ3YWY1MTkzZDM2Nzk0M2ZiMS4uNTI0ODQxYTMzMGE4ZDcyODg2ZjhlNWU5
ZWQ3NmE1OTI3ZmZhNGE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUl0ZXJh
dG9yLmgKQEAgLTI0Niw2ICsyNDYsMzggQEAgaW5saW5lIHZvaWQgSW5saW5lSXRlcmF0b3I6OmZh
c3RJbmNyZW1lbnRJblRleHROb2RlKCkKICAgICBtX3BvcysrOwogfQogCitjbGFzcyBJbmxpbmVX
YWxrZXIgeworcHVibGljOgorICAgIElubGluZVdhbGtlcihSZW5kZXJPYmplY3QqIHJvb3QpCisg
ICAgICAgIDogbV9yb290KHJvb3QpCisgICAgICAgICwgbV9jdXJyZW50KDApCisgICAgICAgICwg
bV9hdEVuZE9mSW5saW5lKGZhbHNlKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgY2xh
c3Mgc2hvdWxkIGJlIHRhdWdodCBob3cgdG8gZG8gdGhlIHNraXBJbmxpbmVzIGNvZGVwYXRoIGFz
IHdlbGwuCisgICAgICAgIG1fY3VycmVudCA9IGJpZGlGaXJzdE5vdFNraXBwaW5nSW5saW5lcyht
X3Jvb3QpOworICAgIH0KKworICAgIFJlbmRlck9iamVjdCogcm9vdCgpIHsgcmV0dXJuIG1fcm9v
dDsgfQorICAgIFJlbmRlck9iamVjdCogY3VycmVudCgpIHsgcmV0dXJuIG1fY3VycmVudDsgfQor
CisgICAgYm9vbCBhdEVuZE9mSW5saW5lKCkgeyByZXR1cm4gbV9hdEVuZE9mSW5saW5lOyB9Cisg
ICAgYm9vbCBhdEVuZCgpIGNvbnN0IHsgcmV0dXJuICFtX2N1cnJlbnQ7IH0KKworICAgIFJlbmRl
ck9iamVjdCogYWR2YW5jZSgpCisgICAgeworICAgICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSBz
a2lwSW5saW5lcyBhbmQgb2JzZXJ2ZXIgd2lsbCBiZSBhIG1lbWJlcnMuCisgICAgICAgIGJvb2wg
c2tpcElubGluZXMgPSBmYWxzZTsKKyAgICAgICAgSW5saW5lQmlkaVJlc29sdmVyKiBvYnNlcnZl
ciA9IDA7CisgICAgICAgIG1fY3VycmVudCA9IGJpZGlOZXh0KG1fcm9vdCwgbV9jdXJyZW50LCBv
YnNlcnZlciwgc2tpcElubGluZXMsICZtX2F0RW5kT2ZJbmxpbmUpOworICAgICAgICByZXR1cm4g
bV9jdXJyZW50OworICAgIH0KK3ByaXZhdGU6CisgICAgUmVuZGVyT2JqZWN0KiBtX3Jvb3Q7Cisg
ICAgUmVuZGVyT2JqZWN0KiBtX2N1cnJlbnQ7CisgICAgYm9vbCBtX3NraXBJbmxpbmVzOworICAg
IGJvb2wgbV9hdEVuZE9mSW5saW5lOworfTsKKwogaW5saW5lIHZvaWQgSW5saW5lSXRlcmF0b3I6
OmluY3JlbWVudChJbmxpbmVCaWRpUmVzb2x2ZXIqIHJlc29sdmVyKQogewogICAgIGlmICghbV9v
YmopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA4Njg3NGI4
MjVhZjVjMjU2MjYyMTYzZTkyZDFhYWYyM2QwYjg0NzEyLi43NjRhOTE0MzVmYTk5OTM3ZWYzZWI4
ZjU4MTZhN2JkYTQ4MGRlYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKQEAgLTIwOTMsMTggKzIwOTMsMTYgQEAgdm9pZCBSZW5kZXJCbG9jazo6c2ltcGxpZmll
ZE5vcm1hbEZsb3dMYXlvdXQoKQogewogICAgIGlmIChjaGlsZHJlbklubGluZSgpKSB7CiAgICAg
ICAgIExpc3RIYXNoU2V0PFJvb3RJbmxpbmVCb3gqPiBsaW5lQm94ZXM7Ci0gICAgICAgIGJvb2wg
ZW5kT2ZJbmxpbmUgPSBmYWxzZTsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiBvID0gYmlkaUZpcnN0
Tm90U2tpcHBpbmdJbmxpbmVzKHRoaXMpOwotICAgICAgICB3aGlsZSAobykgeworICAgICAgICBm
b3IgKElubGluZVdhbGtlciB3YWxrZXIodGhpcyk7ICF3YWxrZXIuYXRFbmQoKTsgd2Fsa2VyLmFk
dmFuY2UoKSkgeworICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBvID0gd2Fsa2VyLmN1cnJlbnQo
KTsKICAgICAgICAgICAgIGlmICghby0+aXNQb3NpdGlvbmVkKCkgJiYgKG8tPmlzUmVwbGFjZWQo
KSB8fCBvLT5pc0Zsb2F0aW5nKCkpKSB7CiAgICAgICAgICAgICAgICAgby0+bGF5b3V0SWZOZWVk
ZWQoKTsKICAgICAgICAgICAgICAgICBpZiAodG9SZW5kZXJCb3gobyktPmlubGluZUJveFdyYXBw
ZXIoKSkgewogICAgICAgICAgICAgICAgICAgICBSb290SW5saW5lQm94KiBib3ggPSB0b1JlbmRl
ckJveChvKS0+aW5saW5lQm94V3JhcHBlcigpLT5yb290KCk7CiAgICAgICAgICAgICAgICAgICAg
IGxpbmVCb3hlcy5hZGQoYm94KTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVs
c2UgaWYgKG8tPmlzVGV4dCgpIHx8IChvLT5pc1JlbmRlcklubGluZSgpICYmICFlbmRPZklubGlu
ZSkpCisgICAgICAgICAgICB9IGVsc2UgaWYgKG8tPmlzVGV4dCgpIHx8IChvLT5pc1JlbmRlcklu
bGluZSgpICYmICF3YWxrZXIuYXRFbmRPZklubGluZSgpKSkKICAgICAgICAgICAgICAgICBvLT5z
ZXROZWVkc0xheW91dChmYWxzZSk7Ci0gICAgICAgICAgICBvID0gYmlkaU5leHQodGhpcywgbywg
MCwgZmFsc2UsICZlbmRPZklubGluZSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBGSVhNRTog
R2x5cGggb3ZlcmZsb3cgd2lsbCBnZXQgbG9zdCBpbiB0aGlzIGNhc2UsIGJ1dCBub3QgcmVhbGx5
IGEgYmlnIGRlYWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwCmluZGV4IDFkNDg2NjVlZWNiYWY2YjZmMzNhYjJlZWM2ZjUwN2IzMjE1
ZmIyYTEuLjkzODYzZTI2YTIzY2NiYTQ1OGE3MGQzODVmNTAzYjgyM2QzOTU3MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBA
IC0xMTQ4LDExICsxMTQ4LDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxk
cmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgaW50JiByZXBhaW50TG9naWNhCiAKICAgICBpZiAo
Zmlyc3RDaGlsZCgpKSB7CiAgICAgICAgIC8vIGxheW91dCByZXBsYWNlZCBlbGVtZW50cwotICAg
ICAgICBib29sIGVuZE9mSW5saW5lID0gZmFsc2U7Ci0gICAgICAgIFJlbmRlck9iamVjdCogbyA9
IGJpZGlGaXJzdE5vdFNraXBwaW5nSW5saW5lcyh0aGlzKTsKICAgICAgICAgVmVjdG9yPEZsb2F0
V2l0aFJlY3Q+IGZsb2F0czsKICAgICAgICAgYm9vbCBoYXNJbmxpbmVDaGlsZCA9IGZhbHNlOwot
ICAgICAgICB3aGlsZSAobykgeworICAgICAgICBmb3IgKElubGluZVdhbGtlciB3YWxrZXIodGhp
cyk7ICF3YWxrZXIuYXRFbmQoKTsgd2Fsa2VyLmFkdmFuY2UoKSkgeworICAgICAgICAgICAgUmVu
ZGVyT2JqZWN0KiBvID0gd2Fsa2VyLmN1cnJlbnQoKTsKICAgICAgICAgICAgIGlmICghaGFzSW5s
aW5lQ2hpbGQgJiYgby0+aXNJbmxpbmUoKSkKICAgICAgICAgICAgICAgICBoYXNJbmxpbmVDaGls
ZCA9IHRydWU7CiAKQEAgLTExNzUsMTQgKzExNzQsMTMgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5
b3V0SW5saW5lQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVuLCBpbnQmIHJlcGFpbnRMb2dp
Y2EKICAgICAgICAgICAgICAgICAgICAgdG9SZW5kZXJCb3gobyktPmRpcnR5TGluZUJveGVzKGxh
eW91dFN0YXRlLmlzRnVsbExheW91dCgpKTsKICAgICAgICAgICAgICAgICAgICAgby0+bGF5b3V0
SWZOZWVkZWQoKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG8t
PmlzVGV4dCgpIHx8IChvLT5pc1JlbmRlcklubGluZSgpICYmICFlbmRPZklubGluZSkpIHsKKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAoby0+aXNUZXh0KCkgfHwgKG8tPmlzUmVuZGVySW5saW5lKCkg
JiYgIXdhbGtlci5hdEVuZE9mSW5saW5lKCkpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFvLT5p
c1RleHQoKSkKICAgICAgICAgICAgICAgICAgICAgdG9SZW5kZXJJbmxpbmUobyktPnVwZGF0ZUFs
d2F5c0NyZWF0ZUxpbmVCb3hlcygpOwogICAgICAgICAgICAgICAgIGlmIChsYXlvdXRTdGF0ZS5p
c0Z1bGxMYXlvdXQoKSB8fCBvLT5zZWxmTmVlZHNMYXlvdXQoKSkKICAgICAgICAgICAgICAgICAg
ICAgZGlydHlMaW5lQm94ZXNGb3JSZW5kZXJlcihvLCBsYXlvdXRTdGF0ZS5pc0Z1bGxMYXlvdXQo
KSk7CiAgICAgICAgICAgICAgICAgby0+c2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgbyA9IGJpZGlOZXh0KHRoaXMsIG8sIDAsIGZhbHNlLCAmZW5kT2ZJ
bmxpbmUpOwogICAgICAgICB9CiAKICAgICAgICAgbGF5b3V0UnVuc0FuZEZsb2F0cyhsYXlvdXRT
dGF0ZSwgaGFzSW5saW5lQ2hpbGQsIGZsb2F0cyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>