<?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>129433</bug_id>
          
          <creation_ts>2014-02-27 09:39:37 -0800</creation_ts>
          <short_desc>Avoid calling logicalLeftOffsetForLine 2 times in LineWidth::fitBelowFloats</short_desc>
          <delta_ts>2014-02-27 15:18:35 -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>CSS</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Horvath">zoltan</reporter>
          <assigned_to name="Zoltan Horvath">zoltan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>985210</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-02-27 09:39:37 -0800</bug_when>
    <thetext>This change updates fitBelowFloats and its helpers to call RenderBlock::logicalLeftOffsetForLine only once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985215</commentid>
    <comment_count>1</comment_count>
      <attachid>225384</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-02-27 09:42:28 -0800</bug_when>
    <thetext>Created attachment 225384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985300</commentid>
    <comment_count>2</comment_count>
      <attachid>225384</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-02-27 12:17:17 -0800</bug_when>
    <thetext>Comment on attachment 225384
Patch

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

&gt; Source/WebCore/rendering/line/LineWidth.cpp:168
&gt; +inline static float availableWidthAtOffset(const RenderBlockFlow&amp; block, const LayoutUnit&amp; offset, bool shouldIndentText, float&amp; newLineLeft, float&amp; newLineRight)
&gt; +{
&gt; +    newLineLeft = block.logicalLeftOffsetForLine(offset, shouldIndentText);
&gt; +    newLineRight = block.logicalRightOffsetForLine(offset, shouldIndentText);
&gt; +    return std::max(0.0f, newLineRight - newLineLeft);
&gt; +}
&gt; +
&gt;  inline static float availableWidthAtOffset(const RenderBlock&amp; block, const LayoutUnit&amp; offset, bool shouldIndentText)

Doesn’t seem good to repeat the function twice. Can we make the old function call the new one?

&gt; Source/WebCore/rendering/line/LineWidth.cpp:175
&gt; +void LineWidth::updateLineDimension(LayoutUnit newLineTop, LayoutUnit newLineWidth, const float&amp; newLineLeft, const float&amp; newLineRight)

Argument types here should just be float. No reason to pass &quot;const float&amp;&quot;.

&gt; Source/WebCore/rendering/line/LineWidth.h:79
&gt; +    void updateLineDimension(LayoutUnit newLineTop, LayoutUnit newLineWidth, const float&amp; newLineLeft, const float&amp; newLineRight);

Argument types here should just be float. No reason to pass &quot;const float&amp;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985351</commentid>
    <comment_count>3</comment_count>
      <attachid>225413</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-02-27 14:41:04 -0800</bug_when>
    <thetext>Created attachment 225413
Patch

&gt; Doesn’t seem good to repeat the function twice. Can we make the old function call the new one?

Good point. I changed it.

&gt; Argument types here should just be float. No reason to pass &quot;const float&amp;&quot;.

I modified to use float.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985375</commentid>
    <comment_count>4</comment_count>
      <attachid>225413</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-27 15:18:33 -0800</bug_when>
    <thetext>Comment on attachment 225413
Patch

Clearing flags on attachment: 225413

Committed r164834: &lt;http://trac.webkit.org/changeset/164834&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985376</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-27 15:18:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225384</attachid>
            <date>2014-02-27 09:42:28 -0800</date>
            <delta_ts>2014-02-27 14:41:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>fitbelow.patch</filename>
            <type>text/plain</type>
            <size>5577</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ZmUzMTg1Li42MDliODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMDItMjcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQXZvaWQgY2FsbGluZyBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUgMiB0aW1lcyBpbiBM
aW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjk0MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSB1cGRhdGVzIGZpdEJlbG93RmxvYXRzIGFuZCBp
dHMgaGVscGVycyB0byBjYWxsIFJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUg
b25seSBvbmNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgor
CisgICAgICAgICogcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmF2YWlsYWJsZVdpZHRoQXRPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6TGluZVdpZHRo
Ojp1cGRhdGVMaW5lRGltZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6d3Jh
cE5leHRUb1NoYXBlT3V0c2lkZSk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lV2lkdGg6OmZpdEJl
bG93RmxvYXRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguaDoKKwogMjAx
NC0wMi0yNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NDc4My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwCmluZGV4IDI1ZmEzYjUuLjAxM2Y1NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcApAQCAtMTU4LDYgKzE1OCwx
MyBAQCB2b2lkIExpbmVXaWR0aDo6YXBwbHlPdmVyaGFuZyhSZW5kZXJSdWJ5UnVuKiBydWJ5UnVu
LCBSZW5kZXJPYmplY3QqIHN0YXJ0UmVuZGVyZQogICAgIG1fb3ZlcmhhbmdXaWR0aCArPSBzdGFy
dE92ZXJoYW5nICsgZW5kT3Zlcmhhbmc7CiB9CiAKK2lubGluZSBzdGF0aWMgZmxvYXQgYXZhaWxh
YmxlV2lkdGhBdE9mZnNldChjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGJsb2NrLCBjb25zdCBMYXlv
dXRVbml0JiBvZmZzZXQsIGJvb2wgc2hvdWxkSW5kZW50VGV4dCwgZmxvYXQmIG5ld0xpbmVMZWZ0
LCBmbG9hdCYgbmV3TGluZVJpZ2h0KQoreworICAgIG5ld0xpbmVMZWZ0ID0gYmxvY2subG9naWNh
bExlZnRPZmZzZXRGb3JMaW5lKG9mZnNldCwgc2hvdWxkSW5kZW50VGV4dCk7CisgICAgbmV3TGlu
ZVJpZ2h0ID0gYmxvY2subG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShvZmZzZXQsIHNob3VsZElu
ZGVudFRleHQpOworICAgIHJldHVybiBzdGQ6Om1heCgwLjBmLCBuZXdMaW5lUmlnaHQgLSBuZXdM
aW5lTGVmdCk7Cit9CisKIGlubGluZSBzdGF0aWMgZmxvYXQgYXZhaWxhYmxlV2lkdGhBdE9mZnNl
dChjb25zdCBSZW5kZXJCbG9jayYgYmxvY2ssIGNvbnN0IExheW91dFVuaXQmIG9mZnNldCwgYm9v
bCBzaG91bGRJbmRlbnRUZXh0KQogewogICAgIGZsb2F0IG5ld0xpbmVMZWZ0ID0gYmxvY2subG9n
aWNhbExlZnRPZmZzZXRGb3JMaW5lKG9mZnNldCwgc2hvdWxkSW5kZW50VGV4dCk7CkBAIC0xNjUs
MTUgKzE3MiwxNSBAQCBpbmxpbmUgc3RhdGljIGZsb2F0IGF2YWlsYWJsZVdpZHRoQXRPZmZzZXQo
Y29uc3QgUmVuZGVyQmxvY2smIGJsb2NrLCBjb25zdCBMYXlvdQogICAgIHJldHVybiBzdGQ6Om1h
eCgwLjBmLCBuZXdMaW5lUmlnaHQgLSBuZXdMaW5lTGVmdCk7CiB9CiAKLXZvaWQgTGluZVdpZHRo
Ojp1cGRhdGVMaW5lRGltZW5zaW9uKExheW91dFVuaXQgbmV3TGluZVRvcCwgTGF5b3V0VW5pdCBu
ZXdMaW5lV2lkdGgpCit2b2lkIExpbmVXaWR0aDo6dXBkYXRlTGluZURpbWVuc2lvbihMYXlvdXRV
bml0IG5ld0xpbmVUb3AsIExheW91dFVuaXQgbmV3TGluZVdpZHRoLCBjb25zdCBmbG9hdCYgbmV3
TGluZUxlZnQsIGNvbnN0IGZsb2F0JiBuZXdMaW5lUmlnaHQpCiB7CiAgICAgaWYgKG5ld0xpbmVX
aWR0aCA8PSBtX2F2YWlsYWJsZVdpZHRoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2Jsb2Nr
LnNldExvZ2ljYWxIZWlnaHQobmV3TGluZVRvcCk7CiAgICAgbV9hdmFpbGFibGVXaWR0aCA9IG5l
d0xpbmVXaWR0aCArIG1fb3ZlcmhhbmdXaWR0aDsKLSAgICBtX2xlZnQgPSBtX2Jsb2NrLmxvZ2lj
YWxMZWZ0T2Zmc2V0Rm9yTGluZShuZXdMaW5lVG9wLCBzaG91bGRJbmRlbnRUZXh0KCkpOwotICAg
IG1fcmlnaHQgPSBtX2Jsb2NrLmxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUobmV3TGluZVRvcCwg
c2hvdWxkSW5kZW50VGV4dCgpKTsKKyAgICBtX2xlZnQgPSBuZXdMaW5lTGVmdDsKKyAgICBtX3Jp
Z2h0ID0gbmV3TGluZVJpZ2h0OwogfQogCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCkBAIC0xOTUs
OCArMjAyLDEwIEBAIHZvaWQgTGluZVdpZHRoOjp3cmFwTmV4dFRvU2hhcGVPdXRzaWRlKGJvb2wg
aXNGaXJzdExpbmUpCiAgICAgTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxCb3R0b20gPSBtX2Jsb2Nr
Lm5leHRGbG9hdExvZ2ljYWxCb3R0b21CZWxvdyhsaW5lTG9naWNhbFRvcCk7CiAKICAgICBmbG9h
dCBuZXdMaW5lV2lkdGg7CisgICAgZmxvYXQgbmV3TGluZUxlZnQgPSBtX2xlZnQ7CisgICAgZmxv
YXQgbmV3TGluZVJpZ2h0ID0gbV9yaWdodDsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBu
ZXdMaW5lV2lkdGggPSBhdmFpbGFibGVXaWR0aEF0T2Zmc2V0KG1fYmxvY2ssIG5ld0xpbmVUb3As
IHNob3VsZEluZGVudFRleHQoKSk7CisgICAgICAgIG5ld0xpbmVXaWR0aCA9IGF2YWlsYWJsZVdp
ZHRoQXRPZmZzZXQobV9ibG9jaywgbmV3TGluZVRvcCwgc2hvdWxkSW5kZW50VGV4dCgpLCBuZXdM
aW5lTGVmdCwgbmV3TGluZVJpZ2h0KTsKICAgICAgICAgaWYgKG5ld0xpbmVXaWR0aCA+PSBtX3Vu
Y29tbWl0dGVkV2lkdGggJiYgaXNXaG9sZUxpbmVGaXQobV9ibG9jaywgbmV3TGluZVRvcCwgbGlu
ZUhlaWdodCwgbV91bmNvbW1pdHRlZFdpZHRoLCBzaG91bGRJbmRlbnRUZXh0KCkpKQogICAgICAg
ICAgICAgYnJlYWs7CiAKQEAgLTIwNSw3ICsyMTQsNyBAQCB2b2lkIExpbmVXaWR0aDo6d3JhcE5l
eHRUb1NoYXBlT3V0c2lkZShib29sIGlzRmlyc3RMaW5lKQogCiAgICAgICAgICsrbmV3TGluZVRv
cDsKICAgICB9Ci0gICAgdXBkYXRlTGluZURpbWVuc2lvbihuZXdMaW5lVG9wLCBuZXdMaW5lV2lk
dGgpOworICAgIHVwZGF0ZUxpbmVEaW1lbnNpb24obmV3TGluZVRvcCwgbmV3TGluZVdpZHRoLCBu
ZXdMaW5lTGVmdCwgbmV3TGluZVJpZ2h0KTsKIH0KICNlbmRpZgogCkBAIC0yMjEsNiArMjMwLDgg
QEAgdm9pZCBMaW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzKGJvb2wgaXNGaXJzdExpbmUpCiAgICAg
TGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxCb3R0b207CiAgICAgTGF5b3V0VW5pdCBsYXN0RmxvYXRM
b2dpY2FsQm90dG9tID0gbV9ibG9jay5sb2dpY2FsSGVpZ2h0KCk7CiAgICAgZmxvYXQgbmV3TGlu
ZVdpZHRoID0gbV9hdmFpbGFibGVXaWR0aDsKKyAgICBmbG9hdCBuZXdMaW5lTGVmdCA9IG1fbGVm
dDsKKyAgICBmbG9hdCBuZXdMaW5lUmlnaHQgPSBtX3JpZ2h0OwogCiAjaWYgRU5BQkxFKENTU19T
SEFQRVMpCiAgICAgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUgPSAo
bV9ibG9jay5jb250YWluc0Zsb2F0cygpID8gbV9ibG9jay5tX2Zsb2F0aW5nT2JqZWN0cy0+c2V0
KCkubGFzdCgpLmdldCgpIDogMCk7CkBAIC0yMzMsNyArMjQ0LDcgQEAgdm9pZCBMaW5lV2lkdGg6
OmZpdEJlbG93RmxvYXRzKGJvb2wgaXNGaXJzdExpbmUpCiAgICAgICAgIGlmIChmbG9hdExvZ2lj
YWxCb3R0b20gPD0gbGFzdEZsb2F0TG9naWNhbEJvdHRvbSkKICAgICAgICAgICAgIGJyZWFrOwog
Ci0gICAgICAgIG5ld0xpbmVXaWR0aCA9IGF2YWlsYWJsZVdpZHRoQXRPZmZzZXQobV9ibG9jaywg
ZmxvYXRMb2dpY2FsQm90dG9tLCBzaG91bGRJbmRlbnRUZXh0KCkpOworICAgICAgICBuZXdMaW5l
V2lkdGggPSBhdmFpbGFibGVXaWR0aEF0T2Zmc2V0KG1fYmxvY2ssIGZsb2F0TG9naWNhbEJvdHRv
bSwgc2hvdWxkSW5kZW50VGV4dCgpLCBuZXdMaW5lTGVmdCwgbmV3TGluZVJpZ2h0KTsKICAgICAg
ICAgbGFzdEZsb2F0TG9naWNhbEJvdHRvbSA9IGZsb2F0TG9naWNhbEJvdHRvbTsKIAogI2lmIEVO
QUJMRShDU1NfU0hBUEVTKSAmJiBFTkFCTEUoQ1NTX1NIQVBFX0lOU0lERSkKQEAgLTI1MCw3ICsy
NjEsNyBAQCB2b2lkIExpbmVXaWR0aDo6Zml0QmVsb3dGbG9hdHMoYm9vbCBpc0ZpcnN0TGluZSkK
ICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHVwZGF0ZUxpbmVEaW1lbnNpb24obGFz
dEZsb2F0TG9naWNhbEJvdHRvbSwgbmV3TGluZVdpZHRoKTsKKyAgICB1cGRhdGVMaW5lRGltZW5z
aW9uKGxhc3RGbG9hdExvZ2ljYWxCb3R0b20sIG5ld0xpbmVXaWR0aCwgbmV3TGluZUxlZnQsIG5l
d0xpbmVSaWdodCk7CiB9CiAKIHZvaWQgTGluZVdpZHRoOjpzZXRUcmFpbGluZ1doaXRlc3BhY2VX
aWR0aChmbG9hdCBjb2xsYXBzZWRXaGl0ZXNwYWNlLCBmbG9hdCBib3JkZXJQYWRkaW5nTWFyZ2lu
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguaAppbmRleCAyZjQ3YTY5
Li45ZmY1YWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5l
V2lkdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguaApA
QCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgY29tcHV0ZUF2YWls
YWJsZVdpZHRoRnJvbUxlZnRBbmRSaWdodCgpOwogICAgIGJvb2wgZml0c09uTGluZUV4Y2x1ZGlu
Z1RyYWlsaW5nQ29sbGFwc2VkV2hpdGVzcGFjZSgpIGNvbnN0OwotICAgIHZvaWQgdXBkYXRlTGlu
ZURpbWVuc2lvbihMYXlvdXRVbml0IG5ld0xpbmVUb3AsIExheW91dFVuaXQgbmV3TGluZVdpZHRo
KTsKKyAgICB2b2lkIHVwZGF0ZUxpbmVEaW1lbnNpb24oTGF5b3V0VW5pdCBuZXdMaW5lVG9wLCBM
YXlvdXRVbml0IG5ld0xpbmVXaWR0aCwgY29uc3QgZmxvYXQmIG5ld0xpbmVMZWZ0LCBjb25zdCBm
bG9hdCYgbmV3TGluZVJpZ2h0KTsKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKICAgICB2b2lkIHdy
YXBOZXh0VG9TaGFwZU91dHNpZGUoYm9vbCBpc0ZpcnN0TGluZSk7CiAjZW5kaWYK
</data>
<flag name="review"
          id="249514"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="249515"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225413</attachid>
            <date>2014-02-27 14:41:04 -0800</date>
            <delta_ts>2014-02-27 15:18:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>fitbelow.patch</filename>
            <type>text/plain</type>
            <size>6273</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ZmUzMTg1Li5mZThlZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMDItMjcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQXZvaWQgY2FsbGluZyBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUgMiB0aW1lcyBpbiBM
aW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjk0MzMKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBUaGlzIGNoYW5nZSB1cGRhdGVzIGZpdEJlbG93RmxvYXRzIGFuZCBpdHMg
aGVscGVycyB0byBjYWxsIFJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUgb25s
eSBvbmNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmF2YWlsYWJsZVdpZHRoQXRPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6TGluZVdpZHRoOjp1
cGRhdGVMaW5lRGltZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6d3JhcE5l
eHRUb1NoYXBlT3V0c2lkZSk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lV2lkdGg6OmZpdEJlbG93
RmxvYXRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguaDoKKwogMjAxNC0w
Mi0yNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NDc4My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbGluZS9MaW5lV2lkdGguY3BwCmluZGV4IDI1ZmEzYjUuLjUwNThlYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcApAQCAtMTU4LDI2ICsxNTgsMzMg
QEAgdm9pZCBMaW5lV2lkdGg6OmFwcGx5T3ZlcmhhbmcoUmVuZGVyUnVieVJ1biogcnVieVJ1biwg
UmVuZGVyT2JqZWN0KiBzdGFydFJlbmRlcmUKICAgICBtX292ZXJoYW5nV2lkdGggKz0gc3RhcnRP
dmVyaGFuZyArIGVuZE92ZXJoYW5nOwogfQogCi1pbmxpbmUgc3RhdGljIGZsb2F0IGF2YWlsYWJs
ZVdpZHRoQXRPZmZzZXQoY29uc3QgUmVuZGVyQmxvY2smIGJsb2NrLCBjb25zdCBMYXlvdXRVbml0
JiBvZmZzZXQsIGJvb2wgc2hvdWxkSW5kZW50VGV4dCkKK2lubGluZSBzdGF0aWMgZmxvYXQgYXZh
aWxhYmxlV2lkdGhBdE9mZnNldChjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGJsb2NrLCBjb25zdCBM
YXlvdXRVbml0JiBvZmZzZXQsIGJvb2wgc2hvdWxkSW5kZW50VGV4dCwgZmxvYXQmIG5ld0xpbmVM
ZWZ0LCBmbG9hdCYgbmV3TGluZVJpZ2h0KQogewotICAgIGZsb2F0IG5ld0xpbmVMZWZ0ID0gYmxv
Y2subG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKG9mZnNldCwgc2hvdWxkSW5kZW50VGV4dCk7Ci0g
ICAgZmxvYXQgbmV3TGluZVJpZ2h0ID0gYmxvY2subG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShv
ZmZzZXQsIHNob3VsZEluZGVudFRleHQpOworICAgIG5ld0xpbmVMZWZ0ID0gYmxvY2subG9naWNh
bExlZnRPZmZzZXRGb3JMaW5lKG9mZnNldCwgc2hvdWxkSW5kZW50VGV4dCk7CisgICAgbmV3TGlu
ZVJpZ2h0ID0gYmxvY2subG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShvZmZzZXQsIHNob3VsZElu
ZGVudFRleHQpOwogICAgIHJldHVybiBzdGQ6Om1heCgwLjBmLCBuZXdMaW5lUmlnaHQgLSBuZXdM
aW5lTGVmdCk7CiB9CiAKLXZvaWQgTGluZVdpZHRoOjp1cGRhdGVMaW5lRGltZW5zaW9uKExheW91
dFVuaXQgbmV3TGluZVRvcCwgTGF5b3V0VW5pdCBuZXdMaW5lV2lkdGgpCitpbmxpbmUgc3RhdGlj
IGZsb2F0IGF2YWlsYWJsZVdpZHRoQXRPZmZzZXQoY29uc3QgUmVuZGVyQmxvY2tGbG93JiBibG9j
aywgY29uc3QgTGF5b3V0VW5pdCYgb2Zmc2V0LCBib29sIHNob3VsZEluZGVudFRleHQpCit7Cisg
ICAgZmxvYXQgbmV3TGluZUxlZnQgPSAwOworICAgIGZsb2F0IG5ld0xpbmVSaWdodCA9IDA7Cisg
ICAgcmV0dXJuIGF2YWlsYWJsZVdpZHRoQXRPZmZzZXQoYmxvY2ssIG9mZnNldCwgc2hvdWxkSW5k
ZW50VGV4dCwgbmV3TGluZUxlZnQsIG5ld0xpbmVSaWdodCk7Cit9CisKK3ZvaWQgTGluZVdpZHRo
Ojp1cGRhdGVMaW5lRGltZW5zaW9uKExheW91dFVuaXQgbmV3TGluZVRvcCwgTGF5b3V0VW5pdCBu
ZXdMaW5lV2lkdGgsIGZsb2F0IG5ld0xpbmVMZWZ0LCBmbG9hdCBuZXdMaW5lUmlnaHQpCiB7CiAg
ICAgaWYgKG5ld0xpbmVXaWR0aCA8PSBtX2F2YWlsYWJsZVdpZHRoKQogICAgICAgICByZXR1cm47
CiAKICAgICBtX2Jsb2NrLnNldExvZ2ljYWxIZWlnaHQobmV3TGluZVRvcCk7CiAgICAgbV9hdmFp
bGFibGVXaWR0aCA9IG5ld0xpbmVXaWR0aCArIG1fb3ZlcmhhbmdXaWR0aDsKLSAgICBtX2xlZnQg
PSBtX2Jsb2NrLmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShuZXdMaW5lVG9wLCBzaG91bGRJbmRl
bnRUZXh0KCkpOwotICAgIG1fcmlnaHQgPSBtX2Jsb2NrLmxvZ2ljYWxSaWdodE9mZnNldEZvckxp
bmUobmV3TGluZVRvcCwgc2hvdWxkSW5kZW50VGV4dCgpKTsKKyAgICBtX2xlZnQgPSBuZXdMaW5l
TGVmdDsKKyAgICBtX3JpZ2h0ID0gbmV3TGluZVJpZ2h0OwogfQogCiAjaWYgRU5BQkxFKENTU19T
SEFQRVMpCi1pbmxpbmUgc3RhdGljIGJvb2wgaXNXaG9sZUxpbmVGaXQoY29uc3QgUmVuZGVyQmxv
Y2smIGJsb2NrLCBjb25zdCBMYXlvdXRVbml0JiBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWln
aHQsIGZsb2F0IHVuY29tbWl0dGVkV2lkdGgsIGJvb2wgc2hvdWxkSW5kZW50VGV4dCkKK2lubGlu
ZSBzdGF0aWMgYm9vbCBpc1dob2xlTGluZUZpdChjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGJsb2Nr
LCBjb25zdCBMYXlvdXRVbml0JiBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQsIGZsb2F0
IHVuY29tbWl0dGVkV2lkdGgsIGJvb2wgc2hvdWxkSW5kZW50VGV4dCkKIHsKICAgICBmb3IgKExh
eW91dFVuaXQgbGluZUJvdHRvbSA9IGxpbmVUb3A7IGxpbmVCb3R0b20gPD0gbGluZVRvcCArIGxp
bmVIZWlnaHQ7ICsrbGluZUJvdHRvbSkgewogICAgICAgICBMYXlvdXRVbml0IGF2YWlsYWJsZVdp
ZHRoQXRCb3R0b20gPSBhdmFpbGFibGVXaWR0aEF0T2Zmc2V0KGJsb2NrLCBsaW5lQm90dG9tLCBz
aG91bGRJbmRlbnRUZXh0KTsKQEAgLTE5NSw4ICsyMDIsMTAgQEAgdm9pZCBMaW5lV2lkdGg6Ondy
YXBOZXh0VG9TaGFwZU91dHNpZGUoYm9vbCBpc0ZpcnN0TGluZSkKICAgICBMYXlvdXRVbml0IGZs
b2F0TG9naWNhbEJvdHRvbSA9IG1fYmxvY2submV4dEZsb2F0TG9naWNhbEJvdHRvbUJlbG93KGxp
bmVMb2dpY2FsVG9wKTsKIAogICAgIGZsb2F0IG5ld0xpbmVXaWR0aDsKKyAgICBmbG9hdCBuZXdM
aW5lTGVmdCA9IG1fbGVmdDsKKyAgICBmbG9hdCBuZXdMaW5lUmlnaHQgPSBtX3JpZ2h0OwogICAg
IHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIG5ld0xpbmVXaWR0aCA9IGF2YWlsYWJsZVdpZHRoQXRP
ZmZzZXQobV9ibG9jaywgbmV3TGluZVRvcCwgc2hvdWxkSW5kZW50VGV4dCgpKTsKKyAgICAgICAg
bmV3TGluZVdpZHRoID0gYXZhaWxhYmxlV2lkdGhBdE9mZnNldChtX2Jsb2NrLCBuZXdMaW5lVG9w
LCBzaG91bGRJbmRlbnRUZXh0KCksIG5ld0xpbmVMZWZ0LCBuZXdMaW5lUmlnaHQpOwogICAgICAg
ICBpZiAobmV3TGluZVdpZHRoID49IG1fdW5jb21taXR0ZWRXaWR0aCAmJiBpc1dob2xlTGluZUZp
dChtX2Jsb2NrLCBuZXdMaW5lVG9wLCBsaW5lSGVpZ2h0LCBtX3VuY29tbWl0dGVkV2lkdGgsIHNo
b3VsZEluZGVudFRleHQoKSkpCiAgICAgICAgICAgICBicmVhazsKIApAQCAtMjA1LDcgKzIxNCw3
IEBAIHZvaWQgTGluZVdpZHRoOjp3cmFwTmV4dFRvU2hhcGVPdXRzaWRlKGJvb2wgaXNGaXJzdExp
bmUpCiAKICAgICAgICAgKytuZXdMaW5lVG9wOwogICAgIH0KLSAgICB1cGRhdGVMaW5lRGltZW5z
aW9uKG5ld0xpbmVUb3AsIG5ld0xpbmVXaWR0aCk7CisgICAgdXBkYXRlTGluZURpbWVuc2lvbihu
ZXdMaW5lVG9wLCBuZXdMaW5lV2lkdGgsIG5ld0xpbmVMZWZ0LCBuZXdMaW5lUmlnaHQpOwogfQog
I2VuZGlmCiAKQEAgLTIyMSw2ICsyMzAsOCBAQCB2b2lkIExpbmVXaWR0aDo6Zml0QmVsb3dGbG9h
dHMoYm9vbCBpc0ZpcnN0TGluZSkKICAgICBMYXlvdXRVbml0IGZsb2F0TG9naWNhbEJvdHRvbTsK
ICAgICBMYXlvdXRVbml0IGxhc3RGbG9hdExvZ2ljYWxCb3R0b20gPSBtX2Jsb2NrLmxvZ2ljYWxI
ZWlnaHQoKTsKICAgICBmbG9hdCBuZXdMaW5lV2lkdGggPSBtX2F2YWlsYWJsZVdpZHRoOworICAg
IGZsb2F0IG5ld0xpbmVMZWZ0ID0gbV9sZWZ0OworICAgIGZsb2F0IG5ld0xpbmVSaWdodCA9IG1f
cmlnaHQ7CiAKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKICAgICBGbG9hdGluZ09iamVjdCogbGFz
dEZsb2F0RnJvbVByZXZpb3VzTGluZSA9IChtX2Jsb2NrLmNvbnRhaW5zRmxvYXRzKCkgPyBtX2Js
b2NrLm1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5sYXN0KCkuZ2V0KCkgOiAwKTsKQEAgLTIzMyw3
ICsyNDQsNyBAQCB2b2lkIExpbmVXaWR0aDo6Zml0QmVsb3dGbG9hdHMoYm9vbCBpc0ZpcnN0TGlu
ZSkKICAgICAgICAgaWYgKGZsb2F0TG9naWNhbEJvdHRvbSA8PSBsYXN0RmxvYXRMb2dpY2FsQm90
dG9tKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgbmV3TGluZVdpZHRoID0gYXZhaWxh
YmxlV2lkdGhBdE9mZnNldChtX2Jsb2NrLCBmbG9hdExvZ2ljYWxCb3R0b20sIHNob3VsZEluZGVu
dFRleHQoKSk7CisgICAgICAgIG5ld0xpbmVXaWR0aCA9IGF2YWlsYWJsZVdpZHRoQXRPZmZzZXQo
bV9ibG9jaywgZmxvYXRMb2dpY2FsQm90dG9tLCBzaG91bGRJbmRlbnRUZXh0KCksIG5ld0xpbmVM
ZWZ0LCBuZXdMaW5lUmlnaHQpOwogICAgICAgICBsYXN0RmxvYXRMb2dpY2FsQm90dG9tID0gZmxv
YXRMb2dpY2FsQm90dG9tOwogCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpICYmIEVOQUJMRShDU1Nf
U0hBUEVfSU5TSURFKQpAQCAtMjUwLDcgKzI2MSw3IEBAIHZvaWQgTGluZVdpZHRoOjpmaXRCZWxv
d0Zsb2F0cyhib29sIGlzRmlyc3RMaW5lKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0g
ICAgdXBkYXRlTGluZURpbWVuc2lvbihsYXN0RmxvYXRMb2dpY2FsQm90dG9tLCBuZXdMaW5lV2lk
dGgpOworICAgIHVwZGF0ZUxpbmVEaW1lbnNpb24obGFzdEZsb2F0TG9naWNhbEJvdHRvbSwgbmV3
TGluZVdpZHRoLCBuZXdMaW5lTGVmdCwgbmV3TGluZVJpZ2h0KTsKIH0KIAogdm9pZCBMaW5lV2lk
dGg6OnNldFRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGZsb2F0IGNvbGxhcHNlZFdoaXRlc3BhY2Us
IGZsb2F0IGJvcmRlclBhZGRpbmdNYXJnaW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5l
L0xpbmVXaWR0aC5oCmluZGV4IDJmNDdhNjkuLmExOWUwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9saW5lL0xpbmVXaWR0aC5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdm9pZCBjb21wdXRlQXZhaWxhYmxlV2lkdGhGcm9tTGVmdEFuZFJpZ2h0KCk7CiAg
ICAgYm9vbCBmaXRzT25MaW5lRXhjbHVkaW5nVHJhaWxpbmdDb2xsYXBzZWRXaGl0ZXNwYWNlKCkg
Y29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVMaW5lRGltZW5zaW9uKExheW91dFVuaXQgbmV3TGluZVRv
cCwgTGF5b3V0VW5pdCBuZXdMaW5lV2lkdGgpOworICAgIHZvaWQgdXBkYXRlTGluZURpbWVuc2lv
bihMYXlvdXRVbml0IG5ld0xpbmVUb3AsIExheW91dFVuaXQgbmV3TGluZVdpZHRoLCBmbG9hdCBu
ZXdMaW5lTGVmdCwgZmxvYXQgbmV3TGluZVJpZ2h0KTsKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykK
ICAgICB2b2lkIHdyYXBOZXh0VG9TaGFwZU91dHNpZGUoYm9vbCBpc0ZpcnN0TGluZSk7CiAjZW5k
aWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>