<?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>114853</bug_id>
          
          <creation_ts>2013-04-18 22:49:10 -0700</creation_ts>
          <short_desc>Make loops in RenderObject::containingBlock homogeneous in their forms to simplify</short_desc>
          <delta_ts>2013-04-19 15:48:50 -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>Layout and Rendering</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>113479</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>hyatt</cc>
    
    <cc>kling</cc>
    
    <cc>robert</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>878241</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-18 22:49:10 -0700</bug_when>
    <thetext>Make loops in RenderObject::containingBlock homogeneous in their forms to simplify</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878245</commentid>
    <comment_count>1</comment_count>
      <attachid>198805</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-18 22:53:53 -0700</bug_when>
    <thetext>Created attachment 198805
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878247</commentid>
    <comment_count>2</comment_count>
      <attachid>198805</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-18 22:56:01 -0700</bug_when>
    <thetext>Comment on attachment 198805
Cleanup

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

&gt; Source/WebCore/rendering/RenderObject.cpp:790
&gt; +static inline isNonInlineRenderBlock()
&gt; +{
&gt; +    return o-&gt;isRenderBlock() &amp;&amp; (!o-&gt;isInline() || o-&gt;isReplaced());
&gt; +}

Oops, I obviously didn&apos;t upload the right patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878252</commentid>
    <comment_count>3</comment_count>
      <attachid>198807</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-18 23:08:18 -0700</bug_when>
    <thetext>Created attachment 198807
Fixed builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878500</commentid>
    <comment_count>4</comment_count>
      <attachid>198807</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-19 08:57:26 -0700</bug_when>
    <thetext>Comment on attachment 198807
Fixed builds

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

I&apos;d prefer hyatt do final review. Be careful here, this is hot code!

&gt; Source/WebCore/rendering/RenderObject.cpp:807
&gt; +        // For a realtively positioned inline, return its nearest non-anonymous containing block,

&quot;realtively&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878564</commentid>
    <comment_count>5</comment_count>
      <attachid>198807</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-04-19 10:43:46 -0700</bug_when>
    <thetext>Comment on attachment 198807
Fixed builds

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

r-

&gt; Source/WebCore/rendering/RenderObject.cpp:774
&gt; +static inline bool isNonReplacedInlineInFlowPosition(RenderObject* object)
&gt; +{
&gt; +    return object-&gt;style()-&gt;hasInFlowPosition() &amp;&amp; object-&gt;isInline() &amp;&amp; !object-&gt;isReplaced();
&gt; +}

Pretty sure this function has no reason for existing and is just historical from when RenderBlocks could be inline flows because of run-in/compact. I think this can just be isRenderInline() now.

&gt; Source/WebCore/rendering/RenderObject.cpp:778
&gt; +    // FIXME: This set of conditions can be simplified by combinging the first and the last conditions.

Typo. combinging should be combining.

&gt; Source/WebCore/rendering/RenderObject.cpp:785
&gt; +        || isNonReplacedInlineInFlowPosition(object);

I&apos;m pretty sure this can just be isRenderInline().

&gt; Source/WebCore/rendering/RenderObject.cpp:791
&gt; +static inline bool isNonInlineRenderBlock(RenderObject* object)
&gt; +{
&gt; +    return object-&gt;isRenderBlock() &amp;&amp; (!object-&gt;isInline() || object-&gt;isReplaced());
&gt; +}

I would invert this function and make it:

isNonRenderBlockInline and make the definition

(o-&gt;isInline() &amp;&amp; !o-&gt;isReplaced()) || !o-&gt;isRenderBlock())

Your version makes a virtual function call right off the bat. Preserve the original code that avoided the virtual function call by using inline/replaced checks first.

&gt; Source/WebCore/rendering/RenderObject.cpp:816
&gt; +        while (o &amp;&amp; !isNonInlineRenderBlock(o))

This can be while (o &amp;&amp; isNonRenderBlockInline())

This reads better to me without the negation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878577</commentid>
    <comment_count>6</comment_count>
      <attachid>198900</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-19 11:01:36 -0700</bug_when>
    <thetext>Created attachment 198900
Fixed per comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878587</commentid>
    <comment_count>7</comment_count>
      <attachid>198903</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-19 11:14:30 -0700</bug_when>
    <thetext>Created attachment 198903
Removed an obsolete comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878603</commentid>
    <comment_count>8</comment_count>
      <attachid>198903</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-04-19 12:00:22 -0700</bug_when>
    <thetext>Comment on attachment 198903
Removed an obsolete comment

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878618</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-19 12:50:31 -0700</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878620</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-19 12:56:49 -0700</bug_when>
    <thetext>Committed r148759: &lt;http://trac.webkit.org/changeset/148759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878661</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-19 15:48:50 -0700</bug_when>
    <thetext>Added a missing null pointer check in http://trac.webkit.org/changeset/148777.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198805</attachid>
            <date>2013-04-18 22:53:53 -0700</date>
            <delta_ts>2013-04-18 22:56:08 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-114853-20130418225322.patch</filename>
            <type>text/plain</type>
            <size>4901</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODcyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEzLTA0LTE4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgbG9vcHMgaW4gUmVuZGVy
T2JqZWN0Ojpjb250YWluaW5nQmxvY2sgaG9tb2dlbmVvdXMgaW4gdGhlaXIgZm9ybXMgdG8gc2lt
cGxpZnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
NDg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4
dHJhY3RlZCBpbmxpbmUgZnVuY3Rpb25zIG91dCBvZiBSZW5kZXJCbG9jazo6Y29udGFpbmdCbG9j
ayB0byBtYWtlIHRoZSBsb2dpYyBzaW1wbGVyLgorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRo
ZSBsb2dpYyB0byBvYnRhaW4gdGhlIG5lYXJlc3QgY29udGFpbmluZyBibG9jayBmb3IgYSByZWxh
dGl2ZWx5IHBvc2l0aW9uZWQgaW5saW5lCisgICAgICAgIHdhcyBtb3ZlZCBvdXRzaWRlIG9mIHRo
ZSBsb29wLgorCisgICAgICAgIFRoaXMgcmVmYWN0b3JpbmcgZ3JlYXRseSBzaW1wbGlmaWVzIGNv
bmRpdGlvbnMgaW4gZWFjaCBicmFuY2ggb2YgUmVuZGVyQmxvY2s6OmNvbnRhaW5pbmdCbG9jayBh
bmQKKyAgICAgICAgcGF2ZXMgb3VyIHdheSBub3QgdG8gY29tcHV0ZSB0aGUgY29udGFpbmluZyBi
bG9jayBkdXJpbmcgYSBkZXB0aC1maXJzdCB0cmF2ZXJzYWwgb2YgdGhlIHJlbmRlciB0cmVlLgor
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojppc05vblJlcGxhY2VkSW5saW5lSW5GbG93UG9zaXRpb24pOiBFeHRyYWN0ZWQuCisgICAgICAg
IChXZWJDb3JlOjppc0NvbnRhaW5pbmdCbG9ja0NhbmRpZGF0ZUZvckFic29sdXRlbHlQb3NpdGlv
bmVkT2JqZWN0KTogRXh0cmFjdGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNOb25JbmxpbmVSZW5k
ZXJCbG9jayk6IEV4dHJhY3RlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29u
dGFpbmluZ0Jsb2NrKTogUmVmYWN0b3JlZCBhcyBzdGF0ZWQgYWJvdmUuCisKIDIwMTMtMDQtMTgg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBn
YXJkZW5pbmc7IGZpeCBiaW5kaW5ncyB0ZXN0cyBhZnRlciByMTQ4NzAwLgpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDE0ODcyMikKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NjgsNDggKzc2OCw1MSBAQCB2b2lkIFJlbmRlck9iamVjdDo6c2V0TGF5ZXJOZWVkc0Z1
bGxSZXBhCiAgICAgdG9SZW5kZXJMYXllck1vZGVsT2JqZWN0KHRoaXMpLT5sYXllcigpLT5zZXRS
ZXBhaW50U3RhdHVzKE5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQp
OwogfQogCitzdGF0aWMgaW5saW5lIGlzTm9uUmVwbGFjZWRJbmxpbmVJbkZsb3dQb3NpdGlvbihS
ZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gb2JqZWN0LT5zdHlsZSgpLT5oYXNJ
bkZsb3dQb3NpdGlvbigpICYmIG9iamVjdC0+aXNJbmxpbmUoKSAmJiAhb2JqZWN0LT5pc1JlcGxh
Y2VkKCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaXNDb250YWluaW5nQmxvY2tDYW5kaWRhdGVGb3JB
YnNvbHV0ZWx5UG9zaXRpb25lZE9iamVjdChSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAgICBy
ZXR1cm4gKG9iamVjdC0+c3R5bGUoKS0+cG9zaXRpb24oKSAhPSBTdGF0aWNQb3NpdGlvbiAmJiAo
IW9iamVjdC0+aXNJbmxpbmUoKSB8fCBvYmplY3QtPmlzUmVwbGFjZWQoKSkpCisgICAgICAgIHx8
IG9iamVjdC0+aXNSZW5kZXJWaWV3KCkKKyAgICAgICAgfHwgb2JqZWN0LT5oYXNUcmFuc2Zvcm0o
KSAmJiBvYmplY3QtPmlzUmVuZGVyQmxvY2soKQorI2lmIEVOQUJMRShTVkcpCisgICAgICAgIHx8
IG9iamVjdC0+aXNTVkdGb3JlaWduT2JqZWN0KCkKKyNlbmRpZgorICAgICAgICB8fCBpc05vblJl
cGxhY2VkSW5saW5lSW5GbG93UG9zaXRpb24ob2JqZWN0KTsKK30KKworc3RhdGljIGlubGluZSBp
c05vbklubGluZVJlbmRlckJsb2NrKCkKK3sKKyAgICByZXR1cm4gby0+aXNSZW5kZXJCbG9jaygp
ICYmICghby0+aXNJbmxpbmUoKSB8fCBvLT5pc1JlcGxhY2VkKCkpOworfQorCiBSZW5kZXJCbG9j
ayogUmVuZGVyT2JqZWN0Ojpjb250YWluaW5nQmxvY2soKSBjb25zdAogewogICAgIFJlbmRlck9i
amVjdCogbyA9IHBhcmVudCgpOwogICAgIGlmICghbyAmJiBpc1JlbmRlclNjcm9sbGJhclBhcnQo
KSkKICAgICAgICAgbyA9IHRvUmVuZGVyU2Nyb2xsYmFyUGFydCh0aGlzKS0+cmVuZGVyZXJPd25p
bmdTY3JvbGxiYXIoKTsKKwogICAgIGlmICghaXNUZXh0KCkgJiYgbV9zdHlsZS0+cG9zaXRpb24o
KSA9PSBGaXhlZFBvc2l0aW9uKSB7Ci0gICAgICAgIHdoaWxlIChvKSB7Ci0gICAgICAgICAgICBp
ZiAoby0+Y2FuQ29udGFpbkZpeGVkUG9zaXRpb25PYmplY3RzKCkpCi0gICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIHdoaWxlIChvICYmICFvLT5jYW5Db250YWluRml4ZWRQb3NpdGlvbk9i
amVjdHMoKSkKICAgICAgICAgICAgIG8gPSBvLT5wYXJlbnQoKTsKLSAgICAgICAgfQogICAgICAg
ICBBU1NFUlQoIW8gfHwgIW8tPmlzQW5vbnltb3VzQmxvY2soKSk7CiAgICAgfSBlbHNlIGlmICgh
aXNUZXh0KCkgJiYgbV9zdHlsZS0+cG9zaXRpb24oKSA9PSBBYnNvbHV0ZVBvc2l0aW9uKSB7Ci0g
ICAgICAgIHdoaWxlIChvKSB7Ci0gICAgICAgICAgICAvLyBGb3IgcmVscG9zaXRpb25lZCBpbmxp
bmVzLCB3ZSByZXR1cm4gdGhlIG5lYXJlc3Qgbm9uLWFub255bW91cyBlbmNsb3NpbmcgYmxvY2su
IFdlIGRvbid0IHRyeQotICAgICAgICAgICAgLy8gdG8gcmV0dXJuIHRoZSBpbmxpbmUgaXRzZWxm
LiAgVGhpcyBhbGxvd3MgdXMgdG8gYXZvaWQgaGF2aW5nIGEgcG9zaXRpb25lZCBvYmplY3RzCi0g
ICAgICAgICAgICAvLyBsaXN0IGluIGFsbCBSZW5kZXJJbmxpbmVzIGFuZCBsZXRzIHVzIHJldHVy
biBhIHN0cm9uZ2x5LXR5cGVkIFJlbmRlckJsb2NrKiByZXN1bHQKLSAgICAgICAgICAgIC8vIGZy
b20gdGhpcyBtZXRob2QuICBUaGUgY29udGFpbmVyKCkgbWV0aG9kIGNhbiBhY3R1YWxseSBiZSB1
c2VkIHRvIG9idGFpbiB0aGUKLSAgICAgICAgICAgIC8vIGlubGluZSBkaXJlY3RseS4KLSAgICAg
ICAgICAgIGlmIChvLT5zdHlsZSgpLT5wb3NpdGlvbigpICE9IFN0YXRpY1Bvc2l0aW9uICYmICgh
by0+aXNJbmxpbmUoKSB8fCBvLT5pc1JlcGxhY2VkKCkpKQotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgaWYgKG8tPmlzUmVuZGVyVmlldygpKQotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgaWYgKG8tPmhhc1RyYW5zZm9ybSgpICYmIG8tPmlzUmVuZGVyQmxv
Y2soKSkKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgaWYgKG8tPnN0eWxl
KCktPmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgby0+aXNJbmxpbmUoKSAmJiAhby0+aXNSZXBsYWNl
ZCgpKSB7Ci0gICAgICAgICAgICAgICAgbyA9IG8tPmNvbnRhaW5pbmdCbG9jaygpOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotI2lmIEVOQUJMRShTVkcpCi0gICAgICAg
ICAgICBpZiAoby0+aXNTVkdGb3JlaWduT2JqZWN0KCkpIC8vZm9yZWlnbk9iamVjdCBpcyB0aGUg
Y29udGFpbmluZyBibG9jayBmb3IgY29udGVudHMgaW5zaWRlIGl0Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0jZW5kaWYKLQorICAgICAgICB3aGlsZSAobyAmJiAhaXNDb250YWluaW5nQmxvY2tD
YW5kaWRhdGVGb3JBYnNvbHV0ZWx5UG9zaXRpb25lZE9iamVjdChvKSkKICAgICAgICAgICAgIG8g
PSBvLT5wYXJlbnQoKTsKLSAgICAgICAgfQorCisgICAgICAgIC8vIEZvciBhIHJlYWx0aXZlbHkg
cG9zaXRpb25lZCBpbmxpbmUsIHJldHVybiBpdHMgbmVhcmVzdCBub24tYW5vbnltb3VzIGNvbnRh
aW5pbmcgYmxvY2ssCisgICAgICAgIC8vIG5vdCB0aGUgaW5saW5lIGl0c2VsZiwgdG8gYXZvaWQg
aGF2aW5nIGEgcG9zaXRpb25lZCBvYmplY3RzIGxpc3QgaW4gYWxsIFJlbmRlcklubGluZXMKKyAg
ICAgICAgLy8gYW5kIHJldHVybiBhIFJlbmRlckJsb2NrKi4gVGhlIFJlbmRlckJsb2NrOjpjb250
YWluZXIoKSBpcyB1c2VkIHRvIG9idGFpbiB0aGUgaW5saW5lLgorICAgICAgICBpZiAoaXNOb25S
ZXBsYWNlZElubGluZUluRmxvd1Bvc2l0aW9uKG8pKQorICAgICAgICAgICAgbyA9IG8tPmNvbnRh
aW5pbmdCbG9jaygpOwogCiAgICAgICAgIHdoaWxlIChvICYmIG8tPmlzQW5vbnltb3VzQmxvY2so
KSkKICAgICAgICAgICAgIG8gPSBvLT5jb250YWluaW5nQmxvY2soKTsKICAgICB9IGVsc2Ugewot
ICAgICAgICB3aGlsZSAobyAmJiAoKG8tPmlzSW5saW5lKCkgJiYgIW8tPmlzUmVwbGFjZWQoKSkg
fHwgIW8tPmlzUmVuZGVyQmxvY2soKSkpCisgICAgICAgIHdoaWxlIChvICYmICFpc05vbklubGlu
ZVJlbmRlckJsb2NrKG8pKQogICAgICAgICAgICAgbyA9IG8tPnBhcmVudCgpOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198807</attachid>
            <date>2013-04-18 23:08:18 -0700</date>
            <delta_ts>2013-04-19 11:01:33 -0700</delta_ts>
            <desc>Fixed builds</desc>
            <filename>bug-114853-20130418230748.patch</filename>
            <type>text/plain</type>
            <size>4932</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODcyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA0LTE4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgbG9vcHMgaW4gUmVuZGVy
T2JqZWN0Ojpjb250YWluaW5nQmxvY2sgaG9tb2dlbmVvdXMgaW4gdGhlaXIgZm9ybXMgdG8gc2lt
cGxpZnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
NDg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcHJlcGFyZXMgdXMgdG8gYXZvaWQgY29tcHV0aW5nIGNvbnRhaW5pbmcgYmxvY2tz
IGR1cmluZyBhIGRlcHRoLWZpcnN0IHRyYXZlcnNhbCBvZiB0aGUgcmVuZGVyIHRyZWUuCisKKyAg
ICAgICAgRXh0cmFjdGVkIGlubGluZSBmdW5jdGlvbnMgb3V0IG9mIFJlbmRlckJsb2NrOjpjb250
YWluaW5nQmxvY2sgdG8gbWFrZSB0aGUgY29kZSBzaW1wbGVyLiBBbHNvIG1vdmVkIHRoZSBjb2Rl
CisgICAgICAgIHRvIG9idGFpbiB0aGUgbmVhcmVzdCBjb250YWluaW5nIGJsb2NrIG91dCBvZiB0
aGUgbG9vcCBmb3IgYSByZWxhdGl2ZWx5IHBvc2l0aW9uZWQgaW5saW5lLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc05vblJlcGxh
Y2VkSW5saW5lSW5GbG93UG9zaXRpb24pOiBFeHRyYWN0ZWQuCisgICAgICAgIChXZWJDb3JlOjpp
c0NvbnRhaW5pbmdCbG9ja0NhbmRpZGF0ZUZvckFic29sdXRlbHlQb3NpdGlvbmVkT2JqZWN0KTog
RXh0cmFjdGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNOb25JbmxpbmVSZW5kZXJCbG9jayk6IEV4
dHJhY3RlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29udGFpbmluZ0Jsb2Nr
KTogUmVmYWN0b3JlZCBhcyBzdGF0ZWQgYWJvdmUuCisKIDIwMTMtMDQtMTggIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmc7IGZp
eCBiaW5kaW5ncyB0ZXN0cyBhZnRlciByMTQ4NzAwLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDE0ODcyMikKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NjgsNDgg
Kzc2OCw1MiBAQCB2b2lkIFJlbmRlck9iamVjdDo6c2V0TGF5ZXJOZWVkc0Z1bGxSZXBhCiAgICAg
dG9SZW5kZXJMYXllck1vZGVsT2JqZWN0KHRoaXMpLT5sYXllcigpLT5zZXRSZXBhaW50U3RhdHVz
KE5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQpOwogfQogCitzdGF0
aWMgaW5saW5lIGJvb2wgaXNOb25SZXBsYWNlZElubGluZUluRmxvd1Bvc2l0aW9uKFJlbmRlck9i
amVjdCogb2JqZWN0KQoreworICAgIHJldHVybiBvYmplY3QtPnN0eWxlKCktPmhhc0luRmxvd1Bv
c2l0aW9uKCkgJiYgb2JqZWN0LT5pc0lubGluZSgpICYmICFvYmplY3QtPmlzUmVwbGFjZWQoKTsK
K30KKworc3RhdGljIGlubGluZSBib29sIGlzQ29udGFpbmluZ0Jsb2NrQ2FuZGlkYXRlRm9yQWJz
b2x1dGVseVBvc2l0aW9uZWRPYmplY3QoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8g
RklYTUU6IFRoaXMgc2V0IG9mIGNvbmRpdGlvbnMgY2FuIGJlIHNpbXBsaWZpZWQgYnkgY29tYmlu
Z2luZyB0aGUgZmlyc3QgYW5kIHRoZSBsYXN0IGNvbmRpdGlvbnMuCisgICAgcmV0dXJuIChvYmpl
Y3QtPnN0eWxlKCktPnBvc2l0aW9uKCkgIT0gU3RhdGljUG9zaXRpb24gJiYgKCFvYmplY3QtPmlz
SW5saW5lKCkgfHwgb2JqZWN0LT5pc1JlcGxhY2VkKCkpKQorICAgICAgICB8fCBvYmplY3QtPmlz
UmVuZGVyVmlldygpCisgICAgICAgIHx8IChvYmplY3QtPmhhc1RyYW5zZm9ybSgpICYmIG9iamVj
dC0+aXNSZW5kZXJCbG9jaygpKQorI2lmIEVOQUJMRShTVkcpCisgICAgICAgIHx8IG9iamVjdC0+
aXNTVkdGb3JlaWduT2JqZWN0KCkKKyNlbmRpZgorICAgICAgICB8fCBpc05vblJlcGxhY2VkSW5s
aW5lSW5GbG93UG9zaXRpb24ob2JqZWN0KTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzTm9u
SW5saW5lUmVuZGVyQmxvY2soUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgcmV0dXJuIG9i
amVjdC0+aXNSZW5kZXJCbG9jaygpICYmICghb2JqZWN0LT5pc0lubGluZSgpIHx8IG9iamVjdC0+
aXNSZXBsYWNlZCgpKTsKK30KKwogUmVuZGVyQmxvY2sqIFJlbmRlck9iamVjdDo6Y29udGFpbmlu
Z0Jsb2NrKCkgY29uc3QKIHsKICAgICBSZW5kZXJPYmplY3QqIG8gPSBwYXJlbnQoKTsKICAgICBp
ZiAoIW8gJiYgaXNSZW5kZXJTY3JvbGxiYXJQYXJ0KCkpCiAgICAgICAgIG8gPSB0b1JlbmRlclNj
cm9sbGJhclBhcnQodGhpcyktPnJlbmRlcmVyT3duaW5nU2Nyb2xsYmFyKCk7CisKICAgICBpZiAo
IWlzVGV4dCgpICYmIG1fc3R5bGUtPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbikgewotICAg
ICAgICB3aGlsZSAobykgewotICAgICAgICAgICAgaWYgKG8tPmNhbkNvbnRhaW5GaXhlZFBvc2l0
aW9uT2JqZWN0cygpKQotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB3aGlsZSAobyAm
JiAhby0+Y2FuQ29udGFpbkZpeGVkUG9zaXRpb25PYmplY3RzKCkpCiAgICAgICAgICAgICBvID0g
by0+cGFyZW50KCk7Ci0gICAgICAgIH0KICAgICAgICAgQVNTRVJUKCFvIHx8ICFvLT5pc0Fub255
bW91c0Jsb2NrKCkpOwogICAgIH0gZWxzZSBpZiAoIWlzVGV4dCgpICYmIG1fc3R5bGUtPnBvc2l0
aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbikgewotICAgICAgICB3aGlsZSAobykgewotICAgICAg
ICAgICAgLy8gRm9yIHJlbHBvc2l0aW9uZWQgaW5saW5lcywgd2UgcmV0dXJuIHRoZSBuZWFyZXN0
IG5vbi1hbm9ueW1vdXMgZW5jbG9zaW5nIGJsb2NrLiBXZSBkb24ndCB0cnkKLSAgICAgICAgICAg
IC8vIHRvIHJldHVybiB0aGUgaW5saW5lIGl0c2VsZi4gIFRoaXMgYWxsb3dzIHVzIHRvIGF2b2lk
IGhhdmluZyBhIHBvc2l0aW9uZWQgb2JqZWN0cwotICAgICAgICAgICAgLy8gbGlzdCBpbiBhbGwg
UmVuZGVySW5saW5lcyBhbmQgbGV0cyB1cyByZXR1cm4gYSBzdHJvbmdseS10eXBlZCBSZW5kZXJC
bG9jayogcmVzdWx0Ci0gICAgICAgICAgICAvLyBmcm9tIHRoaXMgbWV0aG9kLiAgVGhlIGNvbnRh
aW5lcigpIG1ldGhvZCBjYW4gYWN0dWFsbHkgYmUgdXNlZCB0byBvYnRhaW4gdGhlCi0gICAgICAg
ICAgICAvLyBpbmxpbmUgZGlyZWN0bHkuCi0gICAgICAgICAgICBpZiAoby0+c3R5bGUoKS0+cG9z
aXRpb24oKSAhPSBTdGF0aWNQb3NpdGlvbiAmJiAoIW8tPmlzSW5saW5lKCkgfHwgby0+aXNSZXBs
YWNlZCgpKSkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGlmIChvLT5pc1Jl
bmRlclZpZXcoKSkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGlmIChvLT5o
YXNUcmFuc2Zvcm0oKSAmJiBvLT5pc1JlbmRlckJsb2NrKCkpCi0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0KLSAgICAgICAgICAgIGlmIChvLT5zdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYm
IG8tPmlzSW5saW5lKCkgJiYgIW8tPmlzUmVwbGFjZWQoKSkgewotICAgICAgICAgICAgICAgIG8g
PSBvLT5jb250YWluaW5nQmxvY2soKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIH0KLSNpZiBFTkFCTEUoU1ZHKQotICAgICAgICAgICAgaWYgKG8tPmlzU1ZHRm9yZWlnbk9i
amVjdCgpKSAvL2ZvcmVpZ25PYmplY3QgaXMgdGhlIGNvbnRhaW5pbmcgYmxvY2sgZm9yIGNvbnRl
bnRzIGluc2lkZSBpdAotICAgICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0KKyAgICAgICAg
d2hpbGUgKG8gJiYgIWlzQ29udGFpbmluZ0Jsb2NrQ2FuZGlkYXRlRm9yQWJzb2x1dGVseVBvc2l0
aW9uZWRPYmplY3QobykpCiAgICAgICAgICAgICBvID0gby0+cGFyZW50KCk7Ci0gICAgICAgIH0K
KworICAgICAgICAvLyBGb3IgYSByZWFsdGl2ZWx5IHBvc2l0aW9uZWQgaW5saW5lLCByZXR1cm4g
aXRzIG5lYXJlc3Qgbm9uLWFub255bW91cyBjb250YWluaW5nIGJsb2NrLAorICAgICAgICAvLyBu
b3QgdGhlIGlubGluZSBpdHNlbGYsIHRvIGF2b2lkIGhhdmluZyBhIHBvc2l0aW9uZWQgb2JqZWN0
cyBsaXN0IGluIGFsbCBSZW5kZXJJbmxpbmVzCisgICAgICAgIC8vIGFuZCByZXR1cm4gYSBSZW5k
ZXJCbG9jayouIFRoZSBSZW5kZXJCbG9jazo6Y29udGFpbmVyKCkgaXMgdXNlZCB0byBvYnRhaW4g
dGhlIGlubGluZS4KKyAgICAgICAgaWYgKGlzTm9uUmVwbGFjZWRJbmxpbmVJbkZsb3dQb3NpdGlv
bihvKSkKKyAgICAgICAgICAgIG8gPSBvLT5jb250YWluaW5nQmxvY2soKTsKIAogICAgICAgICB3
aGlsZSAobyAmJiBvLT5pc0Fub255bW91c0Jsb2NrKCkpCiAgICAgICAgICAgICBvID0gby0+Y29u
dGFpbmluZ0Jsb2NrKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgd2hpbGUgKG8gJiYgKChvLT5p
c0lubGluZSgpICYmICFvLT5pc1JlcGxhY2VkKCkpIHx8ICFvLT5pc1JlbmRlckJsb2NrKCkpKQor
ICAgICAgICB3aGlsZSAobyAmJiAhaXNOb25JbmxpbmVSZW5kZXJCbG9jayhvKSkKICAgICAgICAg
ICAgIG8gPSBvLT5wYXJlbnQoKTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198900</attachid>
            <date>2013-04-19 11:01:36 -0700</date>
            <delta_ts>2013-04-19 11:14:28 -0700</delta_ts>
            <desc>Fixed per comments</desc>
            <filename>bug-114853-20130419110107.patch</filename>
            <type>text/plain</type>
            <size>4628</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODcyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA0LTE4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgbG9vcHMgaW4gUmVuZGVy
T2JqZWN0Ojpjb250YWluaW5nQmxvY2sgaG9tb2dlbmVvdXMgaW4gdGhlaXIgZm9ybXMgdG8gc2lt
cGxpZnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
NDg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcHJlcGFyZXMgdXMgdG8gYXZvaWQgY29tcHV0aW5nIGNvbnRhaW5pbmcgYmxvY2tz
IGR1cmluZyBhIGRlcHRoLWZpcnN0IHRyYXZlcnNhbCBvZiB0aGUgcmVuZGVyIHRyZWUuCisKKyAg
ICAgICAgRXh0cmFjdGVkIGlubGluZSBmdW5jdGlvbnMgb3V0IG9mIFJlbmRlckJsb2NrOjpjb250
YWluaW5nQmxvY2sgdG8gbWFrZSB0aGUgY29kZSBzaW1wbGVyLiBBbHNvIG1vdmVkIHRoZSBjb2Rl
CisgICAgICAgIHRvIG9idGFpbiB0aGUgbmVhcmVzdCBjb250YWluaW5nIGJsb2NrIG91dCBvZiB0
aGUgbG9vcCBmb3IgYSByZWxhdGl2ZWx5IHBvc2l0aW9uZWQgaW5saW5lLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc05vblJlcGxh
Y2VkSW5saW5lSW5GbG93UG9zaXRpb24pOiBFeHRyYWN0ZWQuCisgICAgICAgIChXZWJDb3JlOjpp
c0NvbnRhaW5pbmdCbG9ja0NhbmRpZGF0ZUZvckFic29sdXRlbHlQb3NpdGlvbmVkT2JqZWN0KTog
RXh0cmFjdGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNOb25SZW5kZXJCbG9ja0lubGluZSk6IEV4
dHJhY3RlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29udGFpbmluZ0Jsb2Nr
KTogUmVmYWN0b3JlZCBhcyBzdGF0ZWQgYWJvdmUuCisKIDIwMTMtMDQtMTggIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmc7IGZp
eCBiaW5kaW5ncyB0ZXN0cyBhZnRlciByMTQ4NzAwLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDE0ODcyMikKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NjgsNDgg
Kzc2OCw0NiBAQCB2b2lkIFJlbmRlck9iamVjdDo6c2V0TGF5ZXJOZWVkc0Z1bGxSZXBhCiAgICAg
dG9SZW5kZXJMYXllck1vZGVsT2JqZWN0KHRoaXMpLT5sYXllcigpLT5zZXRSZXBhaW50U3RhdHVz
KE5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQpOwogfQogCitzdGF0
aWMgaW5saW5lIGJvb2wgaXNDb250YWluaW5nQmxvY2tDYW5kaWRhdGVGb3JBYnNvbHV0ZWx5UG9z
aXRpb25lZE9iamVjdChSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvLyBGSVhNRTogVGhp
cyBzZXQgb2YgY29uZGl0aW9ucyBjYW4gYmUgc2ltcGxpZmllZCBieSBjb21iaW5pbmcgdGhlIGZp
cnN0IGFuZCB0aGUgbGFzdCBjb25kaXRpb25zLgorICAgIHJldHVybiBvYmplY3QtPnN0eWxlKCkt
PnBvc2l0aW9uKCkgIT0gU3RhdGljUG9zaXRpb24KKyAgICAgICAgfHwgKG9iamVjdC0+aGFzVHJh
bnNmb3JtKCkgJiYgb2JqZWN0LT5pc1JlbmRlckJsb2NrKCkpCisjaWYgRU5BQkxFKFNWRykKKyAg
ICAgICAgfHwgb2JqZWN0LT5pc1NWR0ZvcmVpZ25PYmplY3QoKQorI2VuZGlmCisgICAgICAgIHx8
IG9iamVjdC0+aXNSZW5kZXJWaWV3KCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc05vblJl
bmRlckJsb2NrSW5saW5lKFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIHJldHVybiAob2Jq
ZWN0LT5pc0lubGluZSgpICYmICFvYmplY3QtPmlzUmVwbGFjZWQoKSkgfHwgIW9iamVjdC0+aXNS
ZW5kZXJCbG9jaygpOworfQorCiBSZW5kZXJCbG9jayogUmVuZGVyT2JqZWN0Ojpjb250YWluaW5n
QmxvY2soKSBjb25zdAogewogICAgIFJlbmRlck9iamVjdCogbyA9IHBhcmVudCgpOwogICAgIGlm
ICghbyAmJiBpc1JlbmRlclNjcm9sbGJhclBhcnQoKSkKICAgICAgICAgbyA9IHRvUmVuZGVyU2Ny
b2xsYmFyUGFydCh0aGlzKS0+cmVuZGVyZXJPd25pbmdTY3JvbGxiYXIoKTsKKwogICAgIGlmICgh
aXNUZXh0KCkgJiYgbV9zdHlsZS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKSB7Ci0gICAg
ICAgIHdoaWxlIChvKSB7Ci0gICAgICAgICAgICBpZiAoby0+Y2FuQ29udGFpbkZpeGVkUG9zaXRp
b25PYmplY3RzKCkpCi0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHdoaWxlIChvICYm
ICFvLT5jYW5Db250YWluRml4ZWRQb3NpdGlvbk9iamVjdHMoKSkKICAgICAgICAgICAgIG8gPSBv
LT5wYXJlbnQoKTsKLSAgICAgICAgfQogICAgICAgICBBU1NFUlQoIW8gfHwgIW8tPmlzQW5vbnlt
b3VzQmxvY2soKSk7CiAgICAgfSBlbHNlIGlmICghaXNUZXh0KCkgJiYgbV9zdHlsZS0+cG9zaXRp
b24oKSA9PSBBYnNvbHV0ZVBvc2l0aW9uKSB7Ci0gICAgICAgIHdoaWxlIChvKSB7Ci0gICAgICAg
ICAgICAvLyBGb3IgcmVscG9zaXRpb25lZCBpbmxpbmVzLCB3ZSByZXR1cm4gdGhlIG5lYXJlc3Qg
bm9uLWFub255bW91cyBlbmNsb3NpbmcgYmxvY2suIFdlIGRvbid0IHRyeQotICAgICAgICAgICAg
Ly8gdG8gcmV0dXJuIHRoZSBpbmxpbmUgaXRzZWxmLiAgVGhpcyBhbGxvd3MgdXMgdG8gYXZvaWQg
aGF2aW5nIGEgcG9zaXRpb25lZCBvYmplY3RzCi0gICAgICAgICAgICAvLyBsaXN0IGluIGFsbCBS
ZW5kZXJJbmxpbmVzIGFuZCBsZXRzIHVzIHJldHVybiBhIHN0cm9uZ2x5LXR5cGVkIFJlbmRlckJs
b2NrKiByZXN1bHQKLSAgICAgICAgICAgIC8vIGZyb20gdGhpcyBtZXRob2QuICBUaGUgY29udGFp
bmVyKCkgbWV0aG9kIGNhbiBhY3R1YWxseSBiZSB1c2VkIHRvIG9idGFpbiB0aGUKLSAgICAgICAg
ICAgIC8vIGlubGluZSBkaXJlY3RseS4KLSAgICAgICAgICAgIGlmIChvLT5zdHlsZSgpLT5wb3Np
dGlvbigpICE9IFN0YXRpY1Bvc2l0aW9uICYmICghby0+aXNJbmxpbmUoKSB8fCBvLT5pc1JlcGxh
Y2VkKCkpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgaWYgKG8tPmlzUmVu
ZGVyVmlldygpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgaWYgKG8tPmhh
c1RyYW5zZm9ybSgpICYmIG8tPmlzUmVuZGVyQmxvY2soKSkKLSAgICAgICAgICAgICAgICBicmVh
azsKLQotICAgICAgICAgICAgaWYgKG8tPnN0eWxlKCktPmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYg
by0+aXNJbmxpbmUoKSAmJiAhby0+aXNSZXBsYWNlZCgpKSB7Ci0gICAgICAgICAgICAgICAgbyA9
IG8tPmNvbnRhaW5pbmdCbG9jaygpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQotI2lmIEVOQUJMRShTVkcpCi0gICAgICAgICAgICBpZiAoby0+aXNTVkdGb3JlaWduT2Jq
ZWN0KCkpIC8vZm9yZWlnbk9iamVjdCBpcyB0aGUgY29udGFpbmluZyBibG9jayBmb3IgY29udGVu
dHMgaW5zaWRlIGl0Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLQorICAgICAgICB3
aGlsZSAobyAmJiAhaXNDb250YWluaW5nQmxvY2tDYW5kaWRhdGVGb3JBYnNvbHV0ZWx5UG9zaXRp
b25lZE9iamVjdChvKSkKICAgICAgICAgICAgIG8gPSBvLT5wYXJlbnQoKTsKLSAgICAgICAgfQor
CisgICAgICAgIC8vIEZvciBhIHJlbGF0aXZlbHkgcG9zaXRpb25lZCBpbmxpbmUsIHJldHVybiBp
dHMgbmVhcmVzdCBub24tYW5vbnltb3VzIGNvbnRhaW5pbmcgYmxvY2ssCisgICAgICAgIC8vIG5v
dCB0aGUgaW5saW5lIGl0c2VsZiwgdG8gYXZvaWQgaGF2aW5nIGEgcG9zaXRpb25lZCBvYmplY3Rz
IGxpc3QgaW4gYWxsIFJlbmRlcklubGluZXMKKyAgICAgICAgLy8gYW5kIHJldHVybiBhIFJlbmRl
ckJsb2NrKi4gVGhlIFJlbmRlckJsb2NrOjpjb250YWluZXIoKSBpcyB1c2VkIHRvIG9idGFpbiB0
aGUgaW5saW5lLgorICAgICAgICBpZiAoby0+aXNSZW5kZXJJbmxpbmUoKSkKKyAgICAgICAgICAg
IG8gPSBvLT5jb250YWluaW5nQmxvY2soKTsKIAogICAgICAgICB3aGlsZSAobyAmJiBvLT5pc0Fu
b255bW91c0Jsb2NrKCkpCiAgICAgICAgICAgICBvID0gby0+Y29udGFpbmluZ0Jsb2NrKCk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgd2hpbGUgKG8gJiYgKChvLT5pc0lubGluZSgpICYmICFvLT5p
c1JlcGxhY2VkKCkpIHx8ICFvLT5pc1JlbmRlckJsb2NrKCkpKQorICAgICAgICB3aGlsZSAobyAm
JiBpc05vblJlbmRlckJsb2NrSW5saW5lKG8pKQogICAgICAgICAgICAgbyA9IG8tPnBhcmVudCgp
OwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198903</attachid>
            <date>2013-04-19 11:14:30 -0700</date>
            <delta_ts>2013-04-19 12:00:21 -0700</delta_ts>
            <desc>Removed an obsolete comment</desc>
            <filename>bug-114853-20130419111401.patch</filename>
            <type>text/plain</type>
            <size>4554</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODcyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA0LTE4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgbG9vcHMgaW4gUmVuZGVy
T2JqZWN0Ojpjb250YWluaW5nQmxvY2sgaG9tb2dlbmVvdXMgaW4gdGhlaXIgZm9ybXMgdG8gc2lt
cGxpZnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
NDg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcHJlcGFyZXMgdXMgdG8gYXZvaWQgY29tcHV0aW5nIGNvbnRhaW5pbmcgYmxvY2tz
IGR1cmluZyBhIGRlcHRoLWZpcnN0IHRyYXZlcnNhbCBvZiB0aGUgcmVuZGVyIHRyZWUuCisKKyAg
ICAgICAgRXh0cmFjdGVkIGlubGluZSBmdW5jdGlvbnMgb3V0IG9mIFJlbmRlckJsb2NrOjpjb250
YWluaW5nQmxvY2sgdG8gbWFrZSB0aGUgY29kZSBzaW1wbGVyLiBBbHNvIG1vdmVkIHRoZSBjb2Rl
CisgICAgICAgIHRvIG9idGFpbiB0aGUgbmVhcmVzdCBjb250YWluaW5nIGJsb2NrIG91dCBvZiB0
aGUgbG9vcCBmb3IgYSByZWxhdGl2ZWx5IHBvc2l0aW9uZWQgaW5saW5lLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc05vblJlcGxh
Y2VkSW5saW5lSW5GbG93UG9zaXRpb24pOiBFeHRyYWN0ZWQuCisgICAgICAgIChXZWJDb3JlOjpp
c0NvbnRhaW5pbmdCbG9ja0NhbmRpZGF0ZUZvckFic29sdXRlbHlQb3NpdGlvbmVkT2JqZWN0KTog
RXh0cmFjdGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNOb25SZW5kZXJCbG9ja0lubGluZSk6IEV4
dHJhY3RlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29udGFpbmluZ0Jsb2Nr
KTogUmVmYWN0b3JlZCBhcyBzdGF0ZWQgYWJvdmUuCisKIDIwMTMtMDQtMTggIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmc7IGZp
eCBiaW5kaW5ncyB0ZXN0cyBhZnRlciByMTQ4NzAwLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDE0ODcyMikKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NjgsNDgg
Kzc2OCw0NiBAQCB2b2lkIFJlbmRlck9iamVjdDo6c2V0TGF5ZXJOZWVkc0Z1bGxSZXBhCiAgICAg
dG9SZW5kZXJMYXllck1vZGVsT2JqZWN0KHRoaXMpLT5sYXllcigpLT5zZXRSZXBhaW50U3RhdHVz
KE5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQpOwogfQogCitzdGF0
aWMgaW5saW5lIGJvb2wgaXNDb250YWluaW5nQmxvY2tDYW5kaWRhdGVGb3JBYnNvbHV0ZWx5UG9z
aXRpb25lZE9iamVjdChSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gb2JqZWN0
LT5zdHlsZSgpLT5wb3NpdGlvbigpICE9IFN0YXRpY1Bvc2l0aW9uCisgICAgICAgIHx8IChvYmpl
Y3QtPmhhc1RyYW5zZm9ybSgpICYmIG9iamVjdC0+aXNSZW5kZXJCbG9jaygpKQorI2lmIEVOQUJM
RShTVkcpCisgICAgICAgIHx8IG9iamVjdC0+aXNTVkdGb3JlaWduT2JqZWN0KCkKKyNlbmRpZgor
ICAgICAgICB8fCBvYmplY3QtPmlzUmVuZGVyVmlldygpOworfQorCitzdGF0aWMgaW5saW5lIGJv
b2wgaXNOb25SZW5kZXJCbG9ja0lubGluZShSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAgICBy
ZXR1cm4gKG9iamVjdC0+aXNJbmxpbmUoKSAmJiAhb2JqZWN0LT5pc1JlcGxhY2VkKCkpIHx8ICFv
YmplY3QtPmlzUmVuZGVyQmxvY2soKTsKK30KKwogUmVuZGVyQmxvY2sqIFJlbmRlck9iamVjdDo6
Y29udGFpbmluZ0Jsb2NrKCkgY29uc3QKIHsKICAgICBSZW5kZXJPYmplY3QqIG8gPSBwYXJlbnQo
KTsKICAgICBpZiAoIW8gJiYgaXNSZW5kZXJTY3JvbGxiYXJQYXJ0KCkpCiAgICAgICAgIG8gPSB0
b1JlbmRlclNjcm9sbGJhclBhcnQodGhpcyktPnJlbmRlcmVyT3duaW5nU2Nyb2xsYmFyKCk7CisK
ICAgICBpZiAoIWlzVGV4dCgpICYmIG1fc3R5bGUtPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlv
bikgewotICAgICAgICB3aGlsZSAobykgewotICAgICAgICAgICAgaWYgKG8tPmNhbkNvbnRhaW5G
aXhlZFBvc2l0aW9uT2JqZWN0cygpKQotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB3
aGlsZSAobyAmJiAhby0+Y2FuQ29udGFpbkZpeGVkUG9zaXRpb25PYmplY3RzKCkpCiAgICAgICAg
ICAgICBvID0gby0+cGFyZW50KCk7Ci0gICAgICAgIH0KICAgICAgICAgQVNTRVJUKCFvIHx8ICFv
LT5pc0Fub255bW91c0Jsb2NrKCkpOwogICAgIH0gZWxzZSBpZiAoIWlzVGV4dCgpICYmIG1fc3R5
bGUtPnBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbikgewotICAgICAgICB3aGlsZSAobykg
ewotICAgICAgICAgICAgLy8gRm9yIHJlbHBvc2l0aW9uZWQgaW5saW5lcywgd2UgcmV0dXJuIHRo
ZSBuZWFyZXN0IG5vbi1hbm9ueW1vdXMgZW5jbG9zaW5nIGJsb2NrLiBXZSBkb24ndCB0cnkKLSAg
ICAgICAgICAgIC8vIHRvIHJldHVybiB0aGUgaW5saW5lIGl0c2VsZi4gIFRoaXMgYWxsb3dzIHVz
IHRvIGF2b2lkIGhhdmluZyBhIHBvc2l0aW9uZWQgb2JqZWN0cwotICAgICAgICAgICAgLy8gbGlz
dCBpbiBhbGwgUmVuZGVySW5saW5lcyBhbmQgbGV0cyB1cyByZXR1cm4gYSBzdHJvbmdseS10eXBl
ZCBSZW5kZXJCbG9jayogcmVzdWx0Ci0gICAgICAgICAgICAvLyBmcm9tIHRoaXMgbWV0aG9kLiAg
VGhlIGNvbnRhaW5lcigpIG1ldGhvZCBjYW4gYWN0dWFsbHkgYmUgdXNlZCB0byBvYnRhaW4gdGhl
Ci0gICAgICAgICAgICAvLyBpbmxpbmUgZGlyZWN0bHkuCi0gICAgICAgICAgICBpZiAoby0+c3R5
bGUoKS0+cG9zaXRpb24oKSAhPSBTdGF0aWNQb3NpdGlvbiAmJiAoIW8tPmlzSW5saW5lKCkgfHwg
by0+aXNSZXBsYWNlZCgpKSkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGlm
IChvLT5pc1JlbmRlclZpZXcoKSkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IGlmIChvLT5oYXNUcmFuc2Zvcm0oKSAmJiBvLT5pc1JlbmRlckJsb2NrKCkpCi0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGlmIChvLT5zdHlsZSgpLT5oYXNJbkZsb3dQb3Np
dGlvbigpICYmIG8tPmlzSW5saW5lKCkgJiYgIW8tPmlzUmVwbGFjZWQoKSkgewotICAgICAgICAg
ICAgICAgIG8gPSBvLT5jb250YWluaW5nQmxvY2soKTsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIH0KLSNpZiBFTkFCTEUoU1ZHKQotICAgICAgICAgICAgaWYgKG8tPmlzU1ZH
Rm9yZWlnbk9iamVjdCgpKSAvL2ZvcmVpZ25PYmplY3QgaXMgdGhlIGNvbnRhaW5pbmcgYmxvY2sg
Zm9yIGNvbnRlbnRzIGluc2lkZSBpdAotICAgICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0K
KyAgICAgICAgd2hpbGUgKG8gJiYgIWlzQ29udGFpbmluZ0Jsb2NrQ2FuZGlkYXRlRm9yQWJzb2x1
dGVseVBvc2l0aW9uZWRPYmplY3QobykpCiAgICAgICAgICAgICBvID0gby0+cGFyZW50KCk7Ci0g
ICAgICAgIH0KKworICAgICAgICAvLyBGb3IgYSByZWxhdGl2ZWx5IHBvc2l0aW9uZWQgaW5saW5l
LCByZXR1cm4gaXRzIG5lYXJlc3Qgbm9uLWFub255bW91cyBjb250YWluaW5nIGJsb2NrLAorICAg
ICAgICAvLyBub3QgdGhlIGlubGluZSBpdHNlbGYsIHRvIGF2b2lkIGhhdmluZyBhIHBvc2l0aW9u
ZWQgb2JqZWN0cyBsaXN0IGluIGFsbCBSZW5kZXJJbmxpbmVzCisgICAgICAgIC8vIGFuZCB1c2Ug
UmVuZGVyQmxvY2sqIGFzIHRoaXMgZnVuY3Rpb24ncyByZXR1cm4gdHlwZS4KKyAgICAgICAgLy8g
VXNlIFJlbmRlckJsb2NrOjpjb250YWluZXIoKSB0byBvYnRhaW4gdGhlIGlubGluZS4KKyAgICAg
ICAgaWYgKG8tPmlzUmVuZGVySW5saW5lKCkpCisgICAgICAgICAgICBvID0gby0+Y29udGFpbmlu
Z0Jsb2NrKCk7CiAKICAgICAgICAgd2hpbGUgKG8gJiYgby0+aXNBbm9ueW1vdXNCbG9jaygpKQog
ICAgICAgICAgICAgbyA9IG8tPmNvbnRhaW5pbmdCbG9jaygpOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIHdoaWxlIChvICYmICgoby0+aXNJbmxpbmUoKSAmJiAhby0+aXNSZXBsYWNlZCgpKSB8fCAh
by0+aXNSZW5kZXJCbG9jaygpKSkKKyAgICAgICAgd2hpbGUgKG8gJiYgaXNOb25SZW5kZXJCbG9j
a0lubGluZShvKSkKICAgICAgICAgICAgIG8gPSBvLT5wYXJlbnQoKTsKICAgICB9CiAK
</data>
<flag name="review"
          id="220577"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>