<?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>61134</bug_id>
          
          <creation_ts>2011-05-19 12:13:22 -0700</creation_ts>
          <short_desc>Make Executables release their JIT code as soon as they become dead</short_desc>
          <delta_ts>2011-05-19 13:19:54 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>406565</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-19 12:13:22 -0700</bug_when>
    <thetext>Make Executable&apos;s release their JIT code as soon as they become dead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406567</commentid>
    <comment_count>1</comment_count>
      <attachid>94099</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-19 12:15:32 -0700</bug_when>
    <thetext>Created attachment 94099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406582</commentid>
    <comment_count>2</comment_count>
      <attachid>94099</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-19 12:41:00 -0700</bug_when>
    <thetext>Comment on attachment 94099
Patch

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

r- because I think you&apos;re missing an implementation of executableFinalizer().

&gt; Source/JavaScriptCore/runtime/Executable.cpp:58
&gt; +WeakHandleOwner* ExecutableBase::executableFinalizer()
&gt; +{
&gt; +    return 0;
&gt; +}

This seems wrong. Who actually provides the executable finalizer?

&gt; Source/JavaScriptCore/runtime/Executable.h:65
&gt; +#if ENABLE(JIT)
&gt; +            HandleSlot slot = globalData.heap.allocateGlobalHandle();
&gt; +            HandleHeap* handleHeap = HandleHeap::heapFor(slot);
&gt; +            handleHeap-&gt;makeWeak(slot, executableFinalizer());
&gt; +            handleHeap-&gt;writeBarrier(slot, this);
&gt; +            *slot = this;

It&apos;s a shame that clients have to duplicate all this error-prone code. The Weak&lt;T&gt; class was an attempt to reduce error-prone duplication. I think it could be adapted to this purpose if you added leak() and adopt() features to Weak&lt;T&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406587</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-19 12:54:39 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 94099 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=94099&amp;action=review
&gt; 
&gt; r- because I think you&apos;re missing an implementation of executableFinalizer().
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Executable.cpp:58
&gt; &gt; +WeakHandleOwner* ExecutableBase::executableFinalizer()
&gt; &gt; +{
&gt; &gt; +    return 0;
&gt; &gt; +}
&gt; 
&gt; This seems wrong. Who actually provides the executable finalizer?

The patch was meant to, i suspect i posted an incomplete patch but i&apos;m redoing perf numbers to be sure.

&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Executable.h:65
&gt; &gt; +#if ENABLE(JIT)
&gt; &gt; +            HandleSlot slot = globalData.heap.allocateGlobalHandle();
&gt; &gt; +            HandleHeap* handleHeap = HandleHeap::heapFor(slot);
&gt; &gt; +            handleHeap-&gt;makeWeak(slot, executableFinalizer());
&gt; &gt; +            handleHeap-&gt;writeBarrier(slot, this);
&gt; &gt; +            *slot = this;
&gt; 
&gt; It&apos;s a shame that clients have to duplicate all this error-prone code. The Weak&lt;T&gt; class was an attempt to reduce error-prone duplication. I think it could be adapted to this purpose if you added leak() and adopt() features to Weak&lt;T&gt;.

agreed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406590</commentid>
    <comment_count>4</comment_count>
      <attachid>94104</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-19 13:01:47 -0700</bug_when>
    <thetext>Created attachment 94104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406592</commentid>
    <comment_count>5</comment_count>
      <attachid>94104</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-19 13:05:05 -0700</bug_when>
    <thetext>Comment on attachment 94104
Patch

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

r=me

&gt; Source/JavaScriptCore/heap/Weak.h:133
&gt; +        setSlot(0);

Might as well assert that you have a finalizer here. It&apos;s not a guarantee that you won&apos;t leak, but not having a finalizer is a guarantee that you will leak.

&gt; Source/JavaScriptCore/runtime/Executable.cpp:56
&gt; +    static ExecutableFinalizer* finalizer = new ExecutableFinalizer;

Please use DEFINE_STATIC_LOCAL, in accord with our style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406596</commentid>
    <comment_count>6</comment_count>
      <attachid>94104</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-19 13:13:58 -0700</bug_when>
    <thetext>Comment on attachment 94104
Patch

Attachment 94104 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8718269</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406601</commentid>
    <comment_count>7</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-19 13:19:54 -0700</bug_when>
    <thetext>Committed r86883: &lt;http://trac.webkit.org/changeset/86883&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94099</attachid>
            <date>2011-05-19 12:15:32 -0700</date>
            <delta_ts>2011-05-19 13:01:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61134-20110519121530.patch</filename>
            <type>text/plain</type>
            <size>4838</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY4NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDIy
ODA0M2RlZmUxNWNhMDFlNDIxMmViMDliMWFhZTEwMDgxM2NhY2EuLjdhYmYwM2M1NTFjOTczODJj
MWNiZjFhNWI2MjM2NzJjNjViZDQ1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDExLTA1LTE5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBFeGVj
dXRhYmxlcyByZWxlYXNlIHRoZWlyIEpJVCBjb2RlIGFzIHNvb24gYXMgdGhleSBiZWNvbWUgZGVh
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExMzQK
KworICAgICAgICBBZGQgYW4gYWJpbGl0eSB0byBjbGVhciBhbiBFeGVjdXRhYmxlJ3Mgaml0IGNv
ZGUgd2l0aG91dCByZXF1aXJpbmcKKyAgICAgICAgaXQgdG8gYmUgZGVzdHJveWVkLCBhbmQgdGhl
biBjYWxsIHRoYXQgZnJvbSBhIGZpbmFsaXplci4KKworICAgICAgICAqIGhlYXAvSGFuZGxlLmg6
CisgICAgICAgICogaml0L0pJVENvZGUuaDoKKyAgICAgICAgKEpTQzo6SklUQ29kZTo6Y2xlYXIp
OgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6OkV4ZWN1
dGFibGVGaW5hbGl6ZXI6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6
OmV4ZWN1dGFibGVGaW5hbGl6ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQmFzZTo6RXhlY3V0YWJsZUJhc2UpOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlQmFzZTo6Y2xlYXJFeGVjdXRhYmxlQ29kZSk6CisKIDIwMTEtMDUtMTkg
IEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBhIHJlZHVu
ZGFudCBhbmQgYnJva2VuIGRhdGEgZXhwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IYW5kbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZS5o
CmluZGV4IDVmYzVmMmE1MWM0ZDM2ODNlZTk5OTgzZmI4ZGMwMTQ2ZjEzOWZlMWEuLjc0ZTViMTIx
MTEwMmQ5ZjEyODk1ZTI3YzJkZWQzOTQ0YzY1M2VmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hhbmRsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hhbmRsZS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHRlbXBsYXRlIDw+IGNsYXNzIEhhbmRsZTxKU1Zh
bHVlPjsKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIE1hcHBlZFR5cGUsIHR5
cGVuYW1lIEZpbmFsaXplckNhbGxiYWNrLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlU
cmFpdHNBcmc+IGNsYXNzIFdlYWtHQ01hcDsKIAogY2xhc3MgSGFuZGxlQmFzZSB7CisgICAgZnJp
ZW5kIGNsYXNzIEV4ZWN1dGFibGVGaW5hbGl6ZXI7CiAgICAgZnJpZW5kIGNsYXNzIEhhbmRsZUhl
YXA7CiAgICAgZnJpZW5kIHN0cnVjdCBKU0NhbGxiYWNrT2JqZWN0RGF0YTsKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgS2V5VHlwZSwgdHlwZW5hbWUgTWFwcGVkVHlwZSwgdHlwZW5hbWUgRmluYWxp
emVyQ2FsbGJhY2ssIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gZnJp
ZW5kIGNsYXNzIFdlYWtHQ01hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKaW5kZXgg
NzM0NmZkNTNlZWEwYzg5ODZmNjZlNGUxOTgzYWExNDRhMDRmM2RjZC4uMDgyZDJhNzM3NTZhNGJm
NDI0NWRkMjQyMGMwZTMyYjhhNGYxNDk2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2Rl
LmgKQEAgLTEwMSw2ICsxMDEsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1
cm4gSklUQ29kZShjb2RlLmRhdGFMb2NhdGlvbigpLCAwLCAwKTsKICAgICAgICAgfQogCisgICAg
ICAgIHZvaWQgY2xlYXIoKQorICAgICAgICB7CisgICAgICAgICAgICBtX3JlZi5+Q29kZVJlZigp
OworICAgICAgICAgICAgbmV3ICgmbV9yZWYpIENvZGVSZWYoKTsKKyAgICAgICAgfQorCiAgICAg
cHJpdmF0ZToKICAgICAgICAgSklUQ29kZSh2b2lkKiBjb2RlLCBQYXNzUmVmUHRyPEV4ZWN1dGFi
bGVQb29sPiBleGVjdXRhYmxlUG9vbCwgc2l6ZV90IHNpemUpCiAgICAgICAgICAgICA6IG1fcmVm
KGNvZGUsIGV4ZWN1dGFibGVQb29sLCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCAxMTM4NzU5ZjFiODE2MGY5ZTVlZTI0NTBlMjdhODQ1
MjE2ZDVlMzdjLi5iMTRlZDg4ZmZhYjVhNzhjYTA0OTk5MTQyOGZjYzVhNmI1YWQ0MmRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtNDIsNiAr
NDIsMjIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBFeGVjdXRhYmxlQmFz
ZTo6c19pbmZvID0geyAiRXhlY3V0YWJsZSIsIDAsIDAsIDAgfTsKIAorI2lmIEVOQUJMRShKSVQp
CitjbGFzcyBFeGVjdXRhYmxlRmluYWxpemVyIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7Cisg
ICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiBoYW5kbGUsIHZvaWQqKQor
ICAgIHsKKyAgICAgICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxF
eGVjdXRhYmxlQmFzZSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgICAgIGV4ZWN1dGFi
bGUtPmNsZWFyRXhlY3V0YWJsZUNvZGUoKTsKKyAgICAgICAgSGFuZGxlSGVhcDo6aGVhcEZvciho
YW5kbGUuc2xvdCgpKS0+ZGVhbGxvY2F0ZShoYW5kbGUuc2xvdCgpKTsKKyAgICB9Cit9OworCitX
ZWFrSGFuZGxlT3duZXIqIEV4ZWN1dGFibGVCYXNlOjpleGVjdXRhYmxlRmluYWxpemVyKCkKK3sK
KyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorICAgIAogY29uc3QgQ2xhc3NJbmZvIE5hdGl2ZUV4
ZWN1dGFibGU6OnNfaW5mbyA9IHsgIk5hdGl2ZUV4ZWN1dGFibGUiLCAmRXhlY3V0YWJsZUJhc2U6
OnNfaW5mbywgMCwgMCB9OwogCiBOYXRpdmVFeGVjdXRhYmxlOjp+TmF0aXZlRXhlY3V0YWJsZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXggNjkyZTM0
N2E1ZmRlOGU5ZTNhZjJmN2NhMDFkN2JkMDJiZjQ1OWZjYy4uNTZmZDQ0NDRiYTlmOGYyZGIxNzQ1
ZjQzODk1NjRiYWU0MWI2ODYxZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuaApAQCAtNTcsNiArNTcsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICAsIG1fbnVtUGFyYW1ldGVyc0ZvckNhbGwobnVtUGFyYW1ldGVycykKICAgICAgICAgICAgICwg
bV9udW1QYXJhbWV0ZXJzRm9yQ29uc3RydWN0KG51bVBhcmFtZXRlcnMpCiAgICAgICAgIHsKKyNp
ZiBFTkFCTEUoSklUKQorICAgICAgICAgICAgSGFuZGxlU2xvdCBzbG90ID0gZ2xvYmFsRGF0YS5o
ZWFwLmFsbG9jYXRlR2xvYmFsSGFuZGxlKCk7CisgICAgICAgICAgICBIYW5kbGVIZWFwKiBoYW5k
bGVIZWFwID0gSGFuZGxlSGVhcDo6aGVhcEZvcihzbG90KTsKKyAgICAgICAgICAgIGhhbmRsZUhl
YXAtPm1ha2VXZWFrKHNsb3QsIGV4ZWN1dGFibGVGaW5hbGl6ZXIoKSk7CisgICAgICAgICAgICBo
YW5kbGVIZWFwLT53cml0ZUJhcnJpZXIoc2xvdCwgdGhpcyk7CisgICAgICAgICAgICAqc2xvdCA9
IHRoaXM7CisjZW5kaWYKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgaXNIb3N0RnVuY3Rpb24o
KSBjb25zdApAQCAtODgsMTEgKzk1LDIwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
cmV0dXJuIG1faml0Q29kZUZvckNvbnN0cnVjdDsKICAgICAgICAgfQogCisgICAgICAgIHZvaWQg
Y2xlYXJFeGVjdXRhYmxlQ29kZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1faml0Q29kZUZv
ckNhbGwuY2xlYXIoKTsKKyAgICAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdC5jbGVhcigp
OworICAgICAgICB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIEpJVENvZGUgbV9qaXRDb2Rl
Rm9yQ2FsbDsKICAgICAgICAgSklUQ29kZSBtX2ppdENvZGVGb3JDb25zdHJ1Y3Q7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2s7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJp
dHlDaGVjazsKKyAgICAgICAgCisgICAgcHJpdmF0ZToKKyAgICAgICAgc3RhdGljIFdlYWtIYW5k
bGVPd25lciogZXhlY3V0YWJsZUZpbmFsaXplcigpOwogI2VuZGlmCiAgICAgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94104</attachid>
            <date>2011-05-19 13:01:47 -0700</date>
            <delta_ts>2011-05-19 13:13:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61134-20110519130145.patch</filename>
            <type>text/plain</type>
            <size>4801</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY4NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDIy
ODA0M2RlZmUxNWNhMDFlNDIxMmViMDliMWFhZTEwMDgxM2NhY2EuLjZkZDQ4OTFmY2I3OWU3NzIz
NWI3NTE4YzMzNTJmZTkyMGRiMmFjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDExLTA1LTE5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBFeGVj
dXRhYmxlcyByZWxlYXNlIHRoZWlyIEpJVCBjb2RlIGFzIHNvb24gYXMgdGhleSBiZWNvbWUgZGVh
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExMzQK
KworICAgICAgICBBZGQgYW4gYWJpbGl0eSB0byBjbGVhciBhbiBFeGVjdXRhYmxlJ3Mgaml0IGNv
ZGUgd2l0aG91dCByZXF1aXJpbmcKKyAgICAgICAgaXQgdG8gYmUgZGVzdHJveWVkLCBhbmQgdGhl
biBjYWxsIHRoYXQgZnJvbSBhIGZpbmFsaXplci4KKworICAgICAgICAqIGhlYXAvV2Vhay5oOgor
ICAgICAgICAoSlNDOjpXZWFrOjpXZWFrKToKKyAgICAgICAgKEpTQzo6V2Vhazo6bGVhayk6Cisg
ICAgICAgICogaml0L0pJVENvZGUuaDoKKyAgICAgICAgKEpTQzo6SklUQ29kZTo6Y2xlYXIpOgor
ICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6OkV4ZWN1dGFi
bGVGaW5hbGl6ZXI6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmV4
ZWN1dGFibGVGaW5hbGl6ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorICAg
ICAgICAoSlNDOjpFeGVjdXRhYmxlQmFzZTo6RXhlY3V0YWJsZUJhc2UpOgorICAgICAgICAoSlND
OjpFeGVjdXRhYmxlQmFzZTo6Y2xlYXJFeGVjdXRhYmxlQ29kZSk6CisKIDIwMTEtMDUtMTkgIEFk
YW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBhIHJlZHVuZGFu
dCBhbmQgYnJva2VuIGRhdGEgZXhwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9XZWFrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgKaW5kZXgg
NjJlMjU5NjVkYzRkNTU1MDE3OWE4NWFhZTcxMGRmODZkMzY3MDVhNy4uMzcyMjA2OTliZGRhYTk5
MGEwOTg2OTI2Njg0YzVlNDJiYmFhOWYxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vhay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaApA
QCAtNTMsNiArNTMsMTIgQEAgcHVibGljOgogICAgICAgICBzZXQodmFsdWUpOwogICAgIH0KIAor
ICAgIGVudW0gQWRvcHRUYWcgeyBBZG9wdCB9OworICAgIFdlYWsoQWRvcHRUYWcsIEhhbmRsZVNs
b3Qgc2xvdCkKKyAgICAgICAgOiBIYW5kbGU8VD4oc2xvdCkKKyAgICB7CisgICAgfQorICAgIAog
ICAgIFdlYWsoY29uc3QgV2VhayYgb3RoZXIpCiAgICAgICAgIDogSGFuZGxlPFQ+KCkKICAgICB7
CkBAIC0xMjEsNiArMTI3LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHNldFNsb3QoSGFuZGxl
SGVhcDo6aGVhcEZvcihvdGhlci5zbG90KCkpLT5jb3B5V2VhayhvdGhlci5zbG90KCkpKTsKICAg
ICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KKyAgICAKKyAgICB2b2lkIGxlYWtIYW5kbGUoKQor
ICAgIHsKKyAgICAgICAgc2V0U2xvdCgwKTsKKyAgICB9CiAKIHByaXZhdGU6CiAgICAgc3RhdGlj
IEhhbmRsZVNsb3QgaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxIYW5kbGVTbG90PigtMSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKaW5k
ZXggNzM0NmZkNTNlZWEwYzg5ODZmNjZlNGUxOTgzYWExNDRhMDRmM2RjZC4uMDgyZDJhNzM3NTZh
NGJmNDI0NWRkMjQyMGMwZTMyYjhhNGYxNDk2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
b2RlLmgKQEAgLTEwMSw2ICsxMDEsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBy
ZXR1cm4gSklUQ29kZShjb2RlLmRhdGFMb2NhdGlvbigpLCAwLCAwKTsKICAgICAgICAgfQogCisg
ICAgICAgIHZvaWQgY2xlYXIoKQorICAgICAgICB7CisgICAgICAgICAgICBtX3JlZi5+Q29kZVJl
ZigpOworICAgICAgICAgICAgbmV3ICgmbV9yZWYpIENvZGVSZWYoKTsKKyAgICAgICAgfQorCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgSklUQ29kZSh2b2lkKiBjb2RlLCBQYXNzUmVmUHRyPEV4ZWN1
dGFibGVQb29sPiBleGVjdXRhYmxlUG9vbCwgc2l6ZV90IHNpemUpCiAgICAgICAgICAgICA6IG1f
cmVmKGNvZGUsIGV4ZWN1dGFibGVQb29sLCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCAxMTM4NzU5ZjFiODE2MGY5ZTVlZTI0NTBlMjdh
ODQ1MjE2ZDVlMzdjLi4wOTc1NTI2ODkyODdjZDk4NGIwNzY2YmM5MjdkYzJjNDZiNzIxN2YwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtNDIs
NiArNDIsMjIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBFeGVjdXRhYmxl
QmFzZTo6c19pbmZvID0geyAiRXhlY3V0YWJsZSIsIDAsIDAsIDAgfTsKIAorI2lmIEVOQUJMRShK
SVQpCitjbGFzcyBFeGVjdXRhYmxlRmluYWxpemVyIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7
CisgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiBoYW5kbGUsIHZvaWQq
KQorICAgIHsKKyAgICAgICAgV2VhazxFeGVjdXRhYmxlQmFzZT4gZXhlY3V0YWJsZShXZWFrPEV4
ZWN1dGFibGVCYXNlPjo6QWRvcHQsIGhhbmRsZS5zbG90KCkpOworICAgICAgICBleGVjdXRhYmxl
LT5jbGVhckV4ZWN1dGFibGVDb2RlKCk7CisgICAgfQorfTsKKworV2Vha0hhbmRsZU93bmVyKiBF
eGVjdXRhYmxlQmFzZTo6ZXhlY3V0YWJsZUZpbmFsaXplcigpCit7CisgICAgc3RhdGljIEV4ZWN1
dGFibGVGaW5hbGl6ZXIqIGZpbmFsaXplciA9IG5ldyBFeGVjdXRhYmxlRmluYWxpemVyOworICAg
IHJldHVybiBmaW5hbGl6ZXI7Cit9CisjZW5kaWYKKyAgICAKIGNvbnN0IENsYXNzSW5mbyBOYXRp
dmVFeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJOYXRpdmVFeGVjdXRhYmxlIiwgJkV4ZWN1dGFibGVC
YXNlOjpzX2luZm8sIDAsIDAgfTsKIAogTmF0aXZlRXhlY3V0YWJsZTo6fk5hdGl2ZUV4ZWN1dGFi
bGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4IDY5
MmUzNDdhNWZkZThlOWUzYWYyZjdjYTAxZDdiZDAyYmY0NTlmY2MuLjcwZTVlNjEwNjkyMDEwNzQy
MmQ2OWEyNDFhMTE2ZWNlOThjOTUxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmgKQEAgLTU3LDYgKzU3LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAgICAgLCBtX251bVBhcmFtZXRlcnNGb3JDYWxsKG51bVBhcmFtZXRlcnMpCiAgICAgICAgICAg
ICAsIG1fbnVtUGFyYW1ldGVyc0ZvckNvbnN0cnVjdChudW1QYXJhbWV0ZXJzKQogICAgICAgICB7
CisjaWYgRU5BQkxFKEpJVCkKKyAgICAgICAgICAgIFdlYWs8RXhlY3V0YWJsZUJhc2U+IGZpbmFs
aXplcihnbG9iYWxEYXRhLCB0aGlzLCBleGVjdXRhYmxlRmluYWxpemVyKCkpOworICAgICAgICAg
ICAgZmluYWxpemVyLmxlYWtIYW5kbGUoKTsKKyNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAg
Ym9vbCBpc0hvc3RGdW5jdGlvbigpIGNvbnN0CkBAIC04OCwxMSArOTIsMjAgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gbV9qaXRDb2RlRm9yQ29uc3RydWN0OwogICAgICAg
ICB9CiAKKyAgICAgICAgdm9pZCBjbGVhckV4ZWN1dGFibGVDb2RlKCkKKyAgICAgICAgeworICAg
ICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOworICAgICAgICAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgICAgIH0KKwogICAgIHByb3RlY3RlZDoKICAgICAg
ICAgSklUQ29kZSBtX2ppdENvZGVGb3JDYWxsOwogICAgICAgICBKSVRDb2RlIG1faml0Q29kZUZv
ckNvbnN0cnVjdDsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0Q29kZUZvckNh
bGxXaXRoQXJpdHlDaGVjazsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0Q29k
ZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrOworICAgICAgICAKKyAgICBwcml2YXRlOgorICAg
ICAgICBzdGF0aWMgV2Vha0hhbmRsZU93bmVyKiBleGVjdXRhYmxlRmluYWxpemVyKCk7CiAjZW5k
aWYKICAgICB9OwogCg==
</data>
<flag name="review"
          id="87361"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="87363"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>