<?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>96132</bug_id>
          
          <creation_ts>2012-09-07 10:33:33 -0700</creation_ts>
          <short_desc>Avoid strlen() when converting DTOA result to String</short_desc>
          <delta_ts>2013-01-18 10:47:05 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          <dependson>96130</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>benjamin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>msaboff</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>714702</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-09-07 10:33:33 -0700</bug_when>
    <thetext>Avoid strlen() when converting DTOA result to String</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714725</commentid>
    <comment_count>1</comment_count>
      <attachid>162814</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-09-07 10:46:54 -0700</bug_when>
    <thetext>Created attachment 162814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714746</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-07 11:00:49 -0700</bug_when>
    <thetext>This is very interesting

Since it touches JSC&apos;s runtime. Could you please check SunSpider to ensure there are no regressions? Better safe than getting yelled at ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714779</commentid>
    <comment_count>3</comment_count>
      <attachid>162814</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-07 11:20:29 -0700</bug_when>
    <thetext>Comment on attachment 162814
Patch

Attachment 162814 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13777684</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714793</commentid>
    <comment_count>4</comment_count>
      <attachid>162814</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-07 11:30:05 -0700</bug_when>
    <thetext>Comment on attachment 162814
Patch

Attachment 162814 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13776782</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714827</commentid>
    <comment_count>5</comment_count>
      <attachid>162814</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-07 12:07:02 -0700</bug_when>
    <thetext>Comment on attachment 162814
Patch

Attachment 162814 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13774835</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714828</commentid>
    <comment_count>6</comment_count>
      <attachid>162814</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-07 12:08:43 -0700</bug_when>
    <thetext>Comment on attachment 162814
Patch

Attachment 162814 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13772829</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714845</commentid>
    <comment_count>7</comment_count>
      <attachid>162814</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-07 12:22:52 -0700</bug_when>
    <thetext>Comment on attachment 162814
Patch

Attachment 162814 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13786551</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714863</commentid>
    <comment_count>8</comment_count>
      <attachid>162814</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-07 12:42:56 -0700</bug_when>
    <thetext>Comment on attachment 162814
Patch

Attachment 162814 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13777711</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715054</commentid>
    <comment_count>9</comment_count>
      <attachid>162814</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 15:37:16 -0700</bug_when>
    <thetext>Comment on attachment 162814
Patch

Attachment 162814 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13788308</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810822</commentid>
    <comment_count>10</comment_count>
      <attachid>162814</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-18 10:47:05 -0800</bug_when>
    <thetext>Comment on attachment 162814
Patch

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

review- because patch doesn’t build and so needs some additional work; probably should review a version that does build

&gt; Source/JavaScriptCore/runtime/NumberPrototype.cpp:388
&gt; +    WTF::NumberToStringBuffer buffer;

The WTF:: prefix should not be needed here.

&gt; Source/WTF/wtf/dtoa.h:47
&gt; -WTF_EXPORT_PRIVATE const char* numberToString(double, NumberToStringBuffer);
&gt; -WTF_EXPORT_PRIVATE const char* numberToFixedPrecisionString(double, unsigned significantFigures, NumberToStringBuffer, bool truncateTrailingZeros = false);
&gt; -WTF_EXPORT_PRIVATE const char* numberToFixedWidthString(double, unsigned decimalPlaces, NumberToStringBuffer);
&gt; +WTF_EXPORT_PRIVATE int numberToString(double, NumberToStringBuffer);
&gt; +WTF_EXPORT_PRIVATE int numberToFixedPrecisionString(double, unsigned significantFigures, NumberToStringBuffer, bool truncateTrailingZeros = false);
&gt; +WTF_EXPORT_PRIVATE int numberToFixedWidthString(double, unsigned decimalPlaces, NumberToStringBuffer);

This return value is a lot less self-explanatory than the old one. We probably need a comment or some other form of explanation. Perhaps this should even be an out argument instead of a return value for clarity.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162814</attachid>
            <date>2012-09-07 10:46:54 -0700</date>
            <delta_ts>2013-01-18 10:47:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96132.patch</filename>
            <type>text/plain</type>
            <size>12533</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQxMDhhNzMuLjg4OTUxNzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTA3ICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIEF2b2lkIHN0cmxlbigpIHdoZW4g
Y29udmVydGluZyBEVE9BIHJlc3VsdCB0byBTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIFdURjo6ZG91YmxlX2NvbnZlcnNpb246OlN0
cmluZ0J1aWxkZXI6OkZpbmFsaXplKCkgd2hpY2ggYWRkcyBhCisgICAgICAgIHRlcm1pbmF0aW5n
IG51bGwtY2hhcmFjdGVyIGFuZCB1c2UgcG9zaXRpb24oKSBpbnN0ZWFkLCB3aGljaCByZXR1cm5z
CisgICAgICAgIHRoZSBsZW5ndGggb2YgdGhlIGNyZWF0ZWQgc3RyaW5nIGFuZCBhdm9pZHMgYW4g
YWRkaXRpb25hbCBzdHJsZW4oKS4KKworICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbCk6CisKIDIw
MTItMDktMDYgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgQWRkIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcigpIGFuZCB1c2UgaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IDRh
MTBlZmQuLmJmZWRkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyUHJvdG90eXBlLmNwcApAQCAtMzg1LDE0ICszODUsMTQgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBTdHJpbmc6
Om51bWJlclRvU3RyaW5nRUNNQVNjcmlwdCh4KSkpOwogCiAgICAgLy8gUm91bmQgaWYgdGhlIGFy
Z3VtZW50IGlzIG5vdCB1bmRlZmluZWQsIGFsd2F5cyBmb3JtYXQgYXMgZXhwb25lbnRpYWwuCi0g
ICAgY2hhciBidWZmZXJbV1RGOjpOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aF07CisgICAgV1RG
OjpOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXI7CiAgICAgRG91YmxlQ29udmVyc2lvblN0cmlu
Z0J1aWxkZXIgYnVpbGRlcihidWZmZXIsIFdURjo6TnVtYmVyVG9TdHJpbmdCdWZmZXJMZW5ndGgp
OwogICAgIGNvbnN0IERvdWJsZVRvU3RyaW5nQ29udmVydGVyJiBjb252ZXJ0ZXIgPSBEb3VibGVU
b1N0cmluZ0NvbnZlcnRlcjo6RWNtYVNjcmlwdENvbnZlcnRlcigpOwogICAgIGJ1aWxkZXIuUmVz
ZXQoKTsKICAgICBpc1VuZGVmaW5lZAogICAgICAgICA/IGNvbnZlcnRlci5Ub0V4cG9uZW50aWFs
KHgsIC0xLCAmYnVpbGRlcikKICAgICAgICAgOiBjb252ZXJ0ZXIuVG9FeHBvbmVudGlhbCh4LCBk
ZWNpbWFsUGxhY2VzSW5FeHBvbmVudCwgJmJ1aWxkZXIpOwotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNTdHJpbmcoZXhlYywgU3RyaW5nKGJ1aWxkZXIuRmluYWxpemUoKSkpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIFN0cmluZyhidWZmZXIsIGJ1aWxk
ZXIucG9zaXRpb24oKSkpKTsKIH0KIAogLy8gdG9GaXhlZCBjb252ZXJ0cyBhIG51bWJlciB0byBh
IHN0cmluZywgYWx3YXlzIGZvcm1hdHRpbmcgYXMgYW4gYSBkZWNpbWFsIGZyYWN0aW9uLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRl
eCA4MzkyZDJlLi40NzJhMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA5LTA3ICBQYXRy
aWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIEF2b2lkIHN0cmxl
bigpIHdoZW4gY29udmVydGluZyBEVE9BIHJlc3VsdCB0byBTdHJpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MTMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIFdURjo6ZG91YmxlX2NvbnZl
cnNpb246OlN0cmluZ0J1aWxkZXI6OkZpbmFsaXplKCkgd2hpY2ggYWRkcyBhCisgICAgICAgIHRl
cm1pbmF0aW5nIG51bGwtY2hhcmFjdGVyIGFuZCB1c2UgcG9zaXRpb24oKSBpbnN0ZWFkLCB3aGlj
aCByZXR1cm5zCisgICAgICAgIHRoZSBsZW5ndGggb2YgdGhlIGNyZWF0ZWQgc3RyaW5nIGFuZCBh
dm9pZHMgYW4gYWRkaXRpb25hbCBzdHJsZW4oKS4KKworICAgICAgICAqIHd0Zi9kdG9hLmNwcDoK
KyAgICAgICAgKiB3dGYvZHRvYS5oOgorICAgICAgICAqIHd0Zi9kdG9hL3V0aWxzLmg6CisgICAg
ICAgIChXVEY6OmRvdWJsZV9jb252ZXJzaW9uOjpTdHJpbmdCdWlsZGVyOjpTZXRQb3NpdGlvbik6
CisgICAgICAgIChXVEY6OmRvdWJsZV9jb252ZXJzaW9uOjpTdHJpbmdCdWlsZGVyOjpBZGRDaGFy
YWN0ZXIpOgorICAgICAgICAoV1RGOjpkb3VibGVfY29udmVyc2lvbjo6U3RyaW5nQnVpbGRlcjo6
QWRkU3Vic3RyaW5nKToKKyAgICAgICAgKFN0cmluZ0J1aWxkZXIpOgorICAgICAgICAqIHd0Zi90
ZXh0L1dURlN0cmluZy5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZzo6bnVtYmVyKToKKyAgICAg
ICAgKFdURjo6U3RyaW5nOjpudW1iZXJUb1N0cmluZ0VDTUFTY3JpcHQpOgorCiAyMDEyLTA5LTA2
ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBT
dHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBhbmQgdXNlIGl0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9kdG9hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCmluZGV4IGNmMWJj
MmMuLjFlNmFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL2R0b2EuY3BwCkBAIC0xMjI3LDE1ICsxMjI3LDE1IEBAIHZvaWQgZHRvYVJv
dW5kRFAoRHRvYUJ1ZmZlciByZXN1bHQsIGRvdWJsZSBkZCwgaW50IG5kaWdpdHMsIGJvb2wmIHNp
Z24sIGludCYgZXhwCiAgICAgZHRvYTxmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlPihyZXN1bHQs
IGRkLCBuZGlnaXRzLCBzaWduLCBleHBvbmVudCwgcHJlY2lzaW9uKTsKIH0KIAotY29uc3QgY2hh
ciogbnVtYmVyVG9TdHJpbmcoZG91YmxlIGQsIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcikK
K2ludCBudW1iZXJUb1N0cmluZyhkb3VibGUgZCwgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVy
KQogewogICAgIGRvdWJsZV9jb252ZXJzaW9uOjpTdHJpbmdCdWlsZGVyIGJ1aWxkZXIoYnVmZmVy
LCBOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCk7CiAgICAgY29uc3QgZG91YmxlX2NvbnZlcnNp
b246OkRvdWJsZVRvU3RyaW5nQ29udmVydGVyJiBjb252ZXJ0ZXIgPSBkb3VibGVfY29udmVyc2lv
bjo6RG91YmxlVG9TdHJpbmdDb252ZXJ0ZXI6OkVjbWFTY3JpcHRDb252ZXJ0ZXIoKTsKICAgICBj
b252ZXJ0ZXIuVG9TaG9ydGVzdChkLCAmYnVpbGRlcik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIuRmlu
YWxpemUoKTsKKyAgICByZXR1cm4gYnVpbGRlci5wb3NpdGlvbigpOwogfQogCi1zdGF0aWMgaW5s
aW5lIGNvbnN0IGNoYXIqIGZvcm1hdFN0cmluZ1RydW5jYXRpbmdUcmFpbGluZ1plcm9zSWZOZWVk
ZWQoTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyLCBkb3VibGVfY29udmVyc2lvbjo6U3RyaW5n
QnVpbGRlciYgYnVpbGRlcikKK3N0YXRpYyBpbmxpbmUgaW50IGZvcm1hdFN0cmluZ1RydW5jYXRp
bmdUcmFpbGluZ1plcm9zSWZOZWVkZWQoTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyLCBkb3Vi
bGVfY29udmVyc2lvbjo6U3RyaW5nQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBzaXplX3QgbGVu
Z3RoID0gYnVpbGRlci5wb3NpdGlvbigpOwogICAgIHNpemVfdCBkZWNpbWFsUG9pbnRQb3NpdGlv
biA9IDA7CkBAIC0xMjQ2LDcgKzEyNDYsNyBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGZv
cm1hdFN0cmluZ1RydW5jYXRpbmdUcmFpbGluZ1plcm9zSWZOZWVkZWQoTnVtYmVyVG9TdAogCiAg
ICAgLy8gTm8gZGVjaW1hbCBzZXBlcmF0b3IgZm91bmQsIGVhcmx5IGV4aXQuCiAgICAgaWYgKGRl
Y2ltYWxQb2ludFBvc2l0aW9uID09IGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuRmlu
YWxpemUoKTsKKyAgICAgICAgcmV0dXJuIGJ1aWxkZXIucG9zaXRpb24oKTsKIAogICAgIHNpemVf
dCB0cnVuY2F0ZWRMZW5ndGggPSBsZW5ndGggLSAxOwogICAgIGZvciAoOyB0cnVuY2F0ZWRMZW5n
dGggPiBkZWNpbWFsUG9pbnRQb3NpdGlvbjsgLS10cnVuY2F0ZWRMZW5ndGgpIHsKQEAgLTEyNTYs
NyArMTI1Niw3IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogZm9ybWF0U3RyaW5nVHJ1bmNh
dGluZ1RyYWlsaW5nWmVyb3NJZk5lZWRlZChOdW1iZXJUb1N0CiAKICAgICAvLyBObyB0cmFpbGlu
ZyB6ZXJvcyBmb3VuZCB0byBzdHJpcC4KICAgICBpZiAodHJ1bmNhdGVkTGVuZ3RoID09IGxlbmd0
aCAtIDEpCi0gICAgICAgIHJldHVybiBidWlsZGVyLkZpbmFsaXplKCk7CisgICAgICAgIHJldHVy
biBidWlsZGVyLnBvc2l0aW9uKCk7CiAKICAgICAvLyBJZiB3ZSByZW1vdmVkIGFsbCB0cmFpbGlu
ZyB6ZXJvcywgcmVtb3ZlIHRoZSBkZWNpbWFsIHBvaW50IGFzIHdlbGwuCiAgICAgaWYgKHRydW5j
YXRlZExlbmd0aCA9PSBkZWNpbWFsUG9pbnRQb3NpdGlvbikgewpAQCAtMTI2NiwxMCArMTI2Niwx
MCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGZvcm1hdFN0cmluZ1RydW5jYXRpbmdUcmFp
bGluZ1plcm9zSWZOZWVkZWQoTnVtYmVyVG9TdAogCiAgICAgLy8gVHJ1bmNhdGUgdGhlIFN0cmlu
Z0J1aWxkZXIsIGFuZCByZXR1cm4gdGhlIGZpbmFsIHJlc3VsdC4KICAgICBidWlsZGVyLlNldFBv
c2l0aW9uKHRydW5jYXRlZExlbmd0aCArIDEpOwotICAgIHJldHVybiBidWlsZGVyLkZpbmFsaXpl
KCk7CisgICAgcmV0dXJuIGJ1aWxkZXIucG9zaXRpb24oKTsKIH0KIAotY29uc3QgY2hhciogbnVt
YmVyVG9GaXhlZFByZWNpc2lvblN0cmluZyhkb3VibGUgZCwgdW5zaWduZWQgc2lnbmlmaWNhbnRG
aWd1cmVzLCBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXIsIGJvb2wgdHJ1bmNhdGVUcmFpbGlu
Z1plcm9zKQoraW50IG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcoZG91YmxlIGQsIHVuc2ln
bmVkIHNpZ25pZmljYW50RmlndXJlcywgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyLCBib29s
IHRydW5jYXRlVHJhaWxpbmdaZXJvcykKIHsKICAgICAvLyBNaW1pYyBTdHJpbmc6OmZvcm1hdCgi
JS5bcHJlY2lzaW9uXWciLCAuLi4pLCBidXQgdXNlIGR0b2FzIHJvdW5kaW5nIGZhY2lsaXRpZXMu
CiAgICAgLy8gImciOiBTaWduZWQgdmFsdWUgcHJpbnRlZCBpbiBmIG9yIGUgZm9ybWF0LCB3aGlj
aGV2ZXIgaXMgbW9yZSBjb21wYWN0IGZvciB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHByZWNpc2lvbi4K
QEAgLTEyODAsMTEgKzEyODAsMTEgQEAgY29uc3QgY2hhciogbnVtYmVyVG9GaXhlZFByZWNpc2lv
blN0cmluZyhkb3VibGUgZCwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLAogICAgIGNvbnN0
IGRvdWJsZV9jb252ZXJzaW9uOjpEb3VibGVUb1N0cmluZ0NvbnZlcnRlciYgY29udmVydGVyID0g
ZG91YmxlX2NvbnZlcnNpb246OkRvdWJsZVRvU3RyaW5nQ29udmVydGVyOjpFY21hU2NyaXB0Q29u
dmVydGVyKCk7CiAgICAgY29udmVydGVyLlRvUHJlY2lzaW9uKGQsIHNpZ25pZmljYW50RmlndXJl
cywgJmJ1aWxkZXIpOwogICAgIGlmICghdHJ1bmNhdGVUcmFpbGluZ1plcm9zKQotICAgICAgICBy
ZXR1cm4gYnVpbGRlci5GaW5hbGl6ZSgpOworICAgICAgICByZXR1cm4gYnVpbGRlci5wb3NpdGlv
bigpOwogICAgIHJldHVybiBmb3JtYXRTdHJpbmdUcnVuY2F0aW5nVHJhaWxpbmdaZXJvc0lmTmVl
ZGVkKGJ1ZmZlciwgYnVpbGRlcik7CiB9CiAKLWNvbnN0IGNoYXIqIG51bWJlclRvRml4ZWRXaWR0
aFN0cmluZyhkb3VibGUgZCwgdW5zaWduZWQgZGVjaW1hbFBsYWNlcywgTnVtYmVyVG9TdHJpbmdC
dWZmZXIgYnVmZmVyKQoraW50IG51bWJlclRvRml4ZWRXaWR0aFN0cmluZyhkb3VibGUgZCwgdW5z
aWduZWQgZGVjaW1hbFBsYWNlcywgTnVtYmVyVG9TdHJpbmdCdWZmZXIgYnVmZmVyKQogewogICAg
IC8vIE1pbWljIFN0cmluZzo6Zm9ybWF0KCIlLltwcmVjaXNpb25dZiIsIC4uLiksIGJ1dCB1c2Ug
ZHRvYXMgcm91bmRpbmcgZmFjaWxpdGllcy4KICAgICAvLyAiZiI6IFNpZ25lZCB2YWx1ZSBoYXZp
bmcgdGhlIGZvcm0gWyDigJMgXWRkZGQuZGRkZCwgd2hlcmUgZGRkZCBpcyBvbmUgb3IgbW9yZSBk
ZWNpbWFsIGRpZ2l0cy4KQEAgLTEyOTYsNyArMTI5Niw3IEBAIGNvbnN0IGNoYXIqIG51bWJlclRv
Rml4ZWRXaWR0aFN0cmluZyhkb3VibGUgZCwgdW5zaWduZWQgZGVjaW1hbFBsYWNlcywgTnVtYmVy
VG9TCiAgICAgZG91YmxlX2NvbnZlcnNpb246OlN0cmluZ0J1aWxkZXIgYnVpbGRlcihidWZmZXIs
IE51bWJlclRvU3RyaW5nQnVmZmVyTGVuZ3RoKTsKICAgICBjb25zdCBkb3VibGVfY29udmVyc2lv
bjo6RG91YmxlVG9TdHJpbmdDb252ZXJ0ZXImIGNvbnZlcnRlciA9IGRvdWJsZV9jb252ZXJzaW9u
OjpEb3VibGVUb1N0cmluZ0NvbnZlcnRlcjo6RWNtYVNjcmlwdENvbnZlcnRlcigpOwogICAgIGNv
bnZlcnRlci5Ub0ZpeGVkKGQsIGRlY2ltYWxQbGFjZXMsICZidWlsZGVyKTsKLSAgICByZXR1cm4g
YnVpbGRlci5GaW5hbGl6ZSgpOworICAgIHJldHVybiBidWlsZGVyLnBvc2l0aW9uKCk7CiB9CiAK
IG5hbWVzcGFjZSBJbnRlcm5hbCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmgKaW5kZXggMzliOGY0OC4uMjBhMTNhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvZHRvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2R0b2EuaApAQCAt
NDIsOSArNDIsOSBAQCBjb25zdCB1bnNpZ25lZCBOdW1iZXJUb1N0cmluZ0J1ZmZlckxlbmd0aCA9
IDk2OwogdHlwZWRlZiBjaGFyIE51bWJlclRvU3RyaW5nQnVmZmVyW051bWJlclRvU3RyaW5nQnVm
ZmVyTGVuZ3RoXTsKIHR5cGVkZWYgTENoYXIgTnVtYmVyVG9MU3RyaW5nQnVmZmVyW051bWJlclRv
U3RyaW5nQnVmZmVyTGVuZ3RoXTsKIAotV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IGNoYXIqIG51
bWJlclRvU3RyaW5nKGRvdWJsZSwgTnVtYmVyVG9TdHJpbmdCdWZmZXIpOwotV1RGX0VYUE9SVF9Q
UklWQVRFIGNvbnN0IGNoYXIqIG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcoZG91YmxlLCB1
bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIE51bWJlclRvU3RyaW5nQnVmZmVyLCBib29sIHRy
dW5jYXRlVHJhaWxpbmdaZXJvcyA9IGZhbHNlKTsKLVdURl9FWFBPUlRfUFJJVkFURSBjb25zdCBj
aGFyKiBudW1iZXJUb0ZpeGVkV2lkdGhTdHJpbmcoZG91YmxlLCB1bnNpZ25lZCBkZWNpbWFsUGxh
Y2VzLCBOdW1iZXJUb1N0cmluZ0J1ZmZlcik7CitXVEZfRVhQT1JUX1BSSVZBVEUgaW50IG51bWJl
clRvU3RyaW5nKGRvdWJsZSwgTnVtYmVyVG9TdHJpbmdCdWZmZXIpOworV1RGX0VYUE9SVF9QUklW
QVRFIGludCBudW1iZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKGRvdWJsZSwgdW5zaWduZWQgc2ln
bmlmaWNhbnRGaWd1cmVzLCBOdW1iZXJUb1N0cmluZ0J1ZmZlciwgYm9vbCB0cnVuY2F0ZVRyYWls
aW5nWmVyb3MgPSBmYWxzZSk7CitXVEZfRVhQT1JUX1BSSVZBVEUgaW50IG51bWJlclRvRml4ZWRX
aWR0aFN0cmluZyhkb3VibGUsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMsIE51bWJlclRvU3RyaW5n
QnVmZmVyKTsKIAogZG91YmxlIHBhcnNlRG91YmxlKGNvbnN0IExDaGFyKiBzdHJpbmcsIHNpemVf
dCBsZW5ndGgsIHNpemVfdCYgcGFyc2VkTGVuZ3RoKTsKIGRvdWJsZSBwYXJzZURvdWJsZShjb25z
dCBVQ2hhciogc3RyaW5nLCBzaXplX3QgbGVuZ3RoLCBzaXplX3QmIHBhcnNlZExlbmd0aCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9kdG9hL3V0aWxzLmggYi9Tb3VyY2UvV1RGL3d0Zi9k
dG9hL3V0aWxzLmgKaW5kZXggZGE2ZTEzMi4uMzkzZDlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvZHRvYS91dGlscy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2R0b2EvdXRpbHMuaApAQCAt
MTg4LDIwICsxODgsMTYgQEAgbmFtZXNwYWNlIGRvdWJsZV9jb252ZXJzaW9uIHsKICAgICAgICAg
U3RyaW5nQnVpbGRlcihjaGFyKiBidWZmZXIsIGludCBzaXplKQogICAgICAgICA6IGJ1ZmZlcl8o
YnVmZmVyLCBzaXplKSwgcG9zaXRpb25fKDApIHsgfQogICAgICAgICAKLSAgICAgICAgflN0cmlu
Z0J1aWxkZXIoKSB7IGlmICghaXNfZmluYWxpemVkKCkpIEZpbmFsaXplKCk7IH0KLSAgICAgICAg
CiAgICAgICAgIGludCBzaXplKCkgY29uc3QgeyByZXR1cm4gYnVmZmVyXy5sZW5ndGgoKTsgfQog
ICAgICAgICAKICAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBidWls
ZGVyLgogICAgICAgICBpbnQgcG9zaXRpb24oKSBjb25zdCB7Ci0gICAgICAgICAgICBBU1NFUlQo
IWlzX2ZpbmFsaXplZCgpKTsKICAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbl87CiAgICAgICAg
IH0KICAgICAgICAgIAogICAgICAgICAvLyBTZXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhl
IGJ1aWxkZXIuCiAgICAgICAgIHZvaWQgU2V0UG9zaXRpb24oaW50IHBvc2l0aW9uKQogICAgICAg
ICB7Ci0gICAgICAgICAgICBBU1NFUlQoIWlzX2ZpbmFsaXplZCgpKTsKICAgICAgICAgICAgIEFT
U0VSVChwb3NpdGlvbiA8IHNpemUoKSk7CiAgICAgICAgICAgICBwb3NpdGlvbl8gPSBwb3NpdGlv
bjsKICAgICAgICAgfQpAQCAtMjE0LDcgKzIxMCw3IEBAIG5hbWVzcGFjZSBkb3VibGVfY29udmVy
c2lvbiB7CiAgICAgICAgIC8vIGluc3RlYWQuCiAgICAgICAgIHZvaWQgQWRkQ2hhcmFjdGVyKGNo
YXIgYykgewogICAgICAgICAgICAgQVNTRVJUKGMgIT0gJ1wwJyk7Ci0gICAgICAgICAgICBBU1NF
UlQoIWlzX2ZpbmFsaXplZCgpICYmIHBvc2l0aW9uXyA8IGJ1ZmZlcl8ubGVuZ3RoKCkpOworICAg
ICAgICAgICAgQVNTRVJUKHBvc2l0aW9uXyA8IGJ1ZmZlcl8ubGVuZ3RoKCkpOwogICAgICAgICAg
ICAgYnVmZmVyX1twb3NpdGlvbl8rK10gPSBjOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMjI3
LDcgKzIyMyw3IEBAIG5hbWVzcGFjZSBkb3VibGVfY29udmVyc2lvbiB7CiAgICAgICAgIC8vIEFk
ZCB0aGUgZmlyc3QgJ24nIGNoYXJhY3RlcnMgb2YgdGhlIGdpdmVuIHN0cmluZyAncycgdG8gdGhl
CiAgICAgICAgIC8vIGJ1aWxkZXIuIFRoZSBpbnB1dCBzdHJpbmcgbXVzdCBoYXZlIGVub3VnaCBj
aGFyYWN0ZXJzLgogICAgICAgICB2b2lkIEFkZFN1YnN0cmluZyhjb25zdCBjaGFyKiBzLCBpbnQg
bikgewotICAgICAgICAgICAgQVNTRVJUKCFpc19maW5hbGl6ZWQoKSAmJiBwb3NpdGlvbl8gKyBu
IDwgYnVmZmVyXy5sZW5ndGgoKSk7CisgICAgICAgICAgICBBU1NFUlQocG9zaXRpb25fICsgbiA8
IGJ1ZmZlcl8ubGVuZ3RoKCkpOwogICAgICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVf
dD4obikgPD0gc3RybGVuKHMpKTsKICAgICAgICAgICAgIG1lbWNweSgmYnVmZmVyX1twb3NpdGlv
bl9dLCBzLCBuICoga0NoYXJTaXplKTsKICAgICAgICAgICAgIHBvc2l0aW9uXyArPSBuOwpAQCAt
MjQyLDI0ICsyMzgsMTAgQEAgbmFtZXNwYWNlIGRvdWJsZV9jb252ZXJzaW9uIHsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgLy8gRmluYWxpemUgdGhlIHN0cmlu
ZyBieSAwLXRlcm1pbmF0aW5nIGl0IGFuZCByZXR1cm5pbmcgdGhlIGJ1ZmZlci4KLSAgICAgICAg
Y2hhciogRmluYWxpemUoKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIWlzX2ZpbmFsaXplZCgpICYm
IHBvc2l0aW9uXyA8IGJ1ZmZlcl8ubGVuZ3RoKCkpOwotICAgICAgICAgICAgYnVmZmVyX1twb3Np
dGlvbl9dID0gJ1wwJzsKLSAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBub2JvZHkgbWFuYWdlZCB0
byBhZGQgYSAwLWNoYXJhY3RlciB0byB0aGUKLSAgICAgICAgICAgIC8vIGJ1ZmZlciB3aGlsZSBi
dWlsZGluZyB0aGUgc3RyaW5nLgotICAgICAgICAgICAgQVNTRVJUKHN0cmxlbihidWZmZXJfLnN0
YXJ0KCkpID09IHN0YXRpY19jYXN0PHNpemVfdD4ocG9zaXRpb25fKSk7Ci0gICAgICAgICAgICBw
b3NpdGlvbl8gPSAtMTsKLSAgICAgICAgICAgIEFTU0VSVChpc19maW5hbGl6ZWQoKSk7Ci0gICAg
ICAgICAgICByZXR1cm4gYnVmZmVyXy5zdGFydCgpOwotICAgICAgICB9Ci0gICAgICAgIAogICAg
IHByaXZhdGU6CiAgICAgICAgIFZlY3RvcjxjaGFyPiBidWZmZXJfOwogICAgICAgICBpbnQgcG9z
aXRpb25fOwogICAgICAgICAKLSAgICAgICAgYm9vbCBpc19maW5hbGl6ZWQoKSBjb25zdCB7IHJl
dHVybiBwb3NpdGlvbl8gPCAwOyB9Ci0gICAgICAgIAogICAgICAgICBESVNBTExPV19JTVBMSUNJ
VF9DT05TVFJVQ1RPUlMoU3RyaW5nQnVpbGRlcik7CiAgICAgfTsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
V1RGU3RyaW5nLmNwcAppbmRleCA2ZjE0YmNmLi41NjgxY2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZT
dHJpbmcuY3BwCkBAIC00NTEsMTkgKzQ1MSwyNCBAQCBTdHJpbmcgU3RyaW5nOjpudW1iZXIodW5z
aWduZWQgbG9uZyBsb25nIG51bWJlcikKIFN0cmluZyBTdHJpbmc6Om51bWJlcihkb3VibGUgbnVt
YmVyLCB1bnNpZ25lZCBmbGFncywgdW5zaWduZWQgcHJlY2lzaW9uKQogewogICAgIE51bWJlclRv
U3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgICBpbnQgbGVuZ3RoOwogCi0gICAgLy8gTWltaWMgU3Ry
aW5nOjpmb3JtYXQoIiUuW3ByZWNpc2lvbl1nIiwgLi4uKSwgYnV0IHVzZSBkdG9hcyByb3VuZGlu
ZyBmYWNpbGl0aWVzLgotICAgIGlmIChmbGFncyAmIFNob3VsZFJvdW5kU2lnbmlmaWNhbnRGaWd1
cmVzKQotICAgICAgICByZXR1cm4gU3RyaW5nKG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmco
bnVtYmVyLCBwcmVjaXNpb24sIGJ1ZmZlciwgZmxhZ3MgJiBTaG91bGRUcnVuY2F0ZVRyYWlsaW5n
WmVyb3MpKTsKKyAgICBpZiAoZmxhZ3MgJiBTaG91bGRSb3VuZFNpZ25pZmljYW50RmlndXJlcykg
eworICAgICAgICAvLyBNaW1pYyBTdHJpbmc6OmZvcm1hdCgiJS5bcHJlY2lzaW9uXWciLCAuLi4p
LCBidXQgdXNlIGR0b2FzIHJvdW5kaW5nIGZhY2lsaXRpZXMuCisgICAgICAgIGxlbmd0aCA9IG51
bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcobnVtYmVyLCBwcmVjaXNpb24sIGJ1ZmZlciwgZmxh
Z3MgJiBTaG91bGRUcnVuY2F0ZVRyYWlsaW5nWmVyb3MpOworICAgIH0gZWxzZSB7CisgICAgICAg
IC8vIE1pbWljIFN0cmluZzo6Zm9ybWF0KCIlLltwcmVjaXNpb25dZiIsIC4uLiksIGJ1dCB1c2Ug
ZHRvYXMgcm91bmRpbmcgZmFjaWxpdGllcy4KKyAgICAgICAgbGVuZ3RoID0gbnVtYmVyVG9GaXhl
ZFdpZHRoU3RyaW5nKG51bWJlciwgcHJlY2lzaW9uLCBidWZmZXIpOworICAgIH0KIAotICAgIC8v
IE1pbWljIFN0cmluZzo6Zm9ybWF0KCIlLltwcmVjaXNpb25dZiIsIC4uLiksIGJ1dCB1c2UgZHRv
YXMgcm91bmRpbmcgZmFjaWxpdGllcy4KLSAgICByZXR1cm4gU3RyaW5nKG51bWJlclRvRml4ZWRX
aWR0aFN0cmluZyhudW1iZXIsIHByZWNpc2lvbiwgYnVmZmVyKSk7CisgICAgcmV0dXJuIFN0cmlu
Z0ltcGw6OmNyZWF0ZShidWZmZXIsIGxlbmd0aCk7CiB9CiAKIFN0cmluZyBTdHJpbmc6Om51bWJl
clRvU3RyaW5nRUNNQVNjcmlwdChkb3VibGUgbnVtYmVyKQogewogICAgIE51bWJlclRvU3RyaW5n
QnVmZmVyIGJ1ZmZlcjsKLSAgICByZXR1cm4gU3RyaW5nKG51bWJlclRvU3RyaW5nKG51bWJlciwg
YnVmZmVyKSk7CisgICAgaW50IGxlbmd0aCA9IG51bWJlclRvU3RyaW5nKG51bWJlciwgYnVmZmVy
KTsKKyAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y3JlYXRlKGJ1ZmZlciwgbGVuZ3RoKTsKIH0KIAog
aW50IFN0cmluZzo6dG9JbnRTdHJpY3QoYm9vbCogb2ssIGludCBiYXNlKSBjb25zdAo=
</data>
<flag name="review"
          id="174042"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="174043"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>