<?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>144599</bug_id>
          
          <creation_ts>2015-05-04 15:08:14 -0700</creation_ts>
          <short_desc>Add a fast path for simple Weak finalization.</short_desc>
          <delta_ts>2015-05-04 20:51:26 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1091541</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-04 15:08:14 -0700</bug_when>
    <thetext>Hack from weekend: fast path for finalizing weaks that really just want to clear out a Weak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091542</commentid>
    <comment_count>1</comment_count>
      <attachid>252338</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-04 15:09:06 -0700</bug_when>
    <thetext>Created attachment 252338
Patch idea</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091659</commentid>
    <comment_count>2</comment_count>
      <attachid>252338</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-04 19:37:11 -0700</bug_when>
    <thetext>Comment on attachment 252338
Patch idea

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

&gt; Source/JavaScriptCore/heap/WeakImpl.h:48
&gt; +    enum FinalizationMode {

enum class please.

&gt; Source/JavaScriptCore/heap/WeakSetInlines.h:51
&gt; +        WeakImpl** impl = static_cast&lt;WeakImpl**&gt;(weakImpl-&gt;context());

WeakImpl* would be an &quot;impl&quot;. This is something else. I usually follow the Qt-ism, and call variables like this &quot;slot&quot;.

&gt; Source/WebCore/bindings/js/ScriptWrappableInlines.h:49
&gt; +    m_wrapper = JSC::Weak&lt;JSDOMWrapper&gt;(wrapper, wrapperOwner, &amp;m_wrapper, false);

I don&apos;t like &quot;, false&quot; as the indicator for this substantial change in behavior. :( Perhaps a better API would use a separate constructor, which took a WeakImpl** as an argument, signifying that you wanted the simple behavior by passing in the slot to clear. Otherwise, an enum tag should work.

It&apos;s very scary to, on the one hand, say that you want the simple behavior and, on the other hand, pass in an owner that has a finalizer with non-simple behavior. What if someone adds some code to that finalizer and expects it to run? Can we arrange to separate out a base class owner, which has no finalizer, from a subclass owner, which has one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091687</commentid>
    <comment_count>3</comment_count>
      <attachid>252338</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-04 20:51:26 -0700</bug_when>
    <thetext>Comment on attachment 252338
Patch idea

Back to drawing board to address Geoff&apos;s comments.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252338</attachid>
            <date>2015-05-04 15:09:06 -0700</date>
            <delta_ts>2015-05-04 20:51:26 -0700</delta_ts>
            <desc>Patch idea</desc>
            <filename>bug-144599.diff</filename>
            <type>text/plain</type>
            <size>8704</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDRhY2ZmMzUuLjFhMzhjOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE1LTA1LTA0ICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgYSBmYXN0IHBhdGggZm9yIHNpbXBs
ZSBXZWFrIGZpbmFsaXphdGlvbi4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0NDU5
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGxp
dCBXZWFrIGZpbmFsaXphdGlvbiBpbnRvIHR3byBtb2RlczsgVmlydHVhbEZpbmFsaXplciAob2xk
IGJlaGF2aW9yLCBuZXcgZGVmYXVsdCkKKyAgICAgICAgYW5kIFNpbXBsZUZpbmFsaXplciwgYSBt
b2RlIHdoZXJlIHRoZSBnYXJiYWdlIGNvbGxlY3RvciBkZWFsbG9jYXRlcyB0aGUgV2Vha0ltcGwg
YW5kCisgICAgICAgIGNsZWFycyBvdXQgdGhlIFdlYWsgcG9pbnRlciBhdXRvbWFnaWNhbGx5LCB3
aXRob3V0IGhhdmluZyB0byBjYWxsIGEgY3VzdG9tIGZpbmFsaXplci4KKworICAgICAgICBUaGUg
ZmluYWxpemF0aW9uIG1vZGUgaXMgZW5jb2RlZCBpbiB0aGUgYm90dG9tIGJpdCBvZiB0aGUgY29u
dGV4dCBwb2ludGVyLCBhbmQgaW4gc2ltcGxlCisgICAgICAgIG1vZGUgKDApLCB0aGUgY29udGV4
dCBwb2ludGVyIHBvaW50cyB0byB0aGUgV2VhayB0aGF0IG5lZWRzIHRvIGJlIGNsZWFyZWQgb3V0
LgorCisgICAgICAgICogaGVhcC9XZWFrLmg6CisgICAgICAgICogaGVhcC9XZWFrSW1wbC5oOgor
ICAgICAgICAoSlNDOjpXZWFrSW1wbDo6V2Vha0ltcGwpOgorICAgICAgICAoSlNDOjpXZWFrSW1w
bDo6ZmluYWxpemF0aW9uTW9kZSk6CisgICAgICAgIChKU0M6OldlYWtJbXBsOjpjb250ZXh0KToK
KyAgICAgICAgKiBoZWFwL1dlYWtJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OldlYWs8VD46Oldl
YWspOgorICAgICAgICAqIGhlYXAvV2Vha1NldC5oOgorICAgICAgICAqIGhlYXAvV2Vha1NldElu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6V2Vha1NldDo6YWxsb2NhdGUpOgorICAgICAgICAoSlND
OjpXZWFrQmxvY2s6OmZpbmFsaXplKToKKworMjAxNS0wNS0wNCAgQW5kcmVhcyBLbGluZyAgPGFr
bGluZ0BhcHBsZS5jb20+CisKICAgICAgICAgTWFrZSBFeGVjU3RhdGU6OnZtKCkgYnJhbmNobGVz
cyBpbiByZWxlYXNlIGJ1aWxkcy4KICAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0NDU4
Nj4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5oCmluZGV4IDgwY2RiZDguLjQxZjdhYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAg
IHsKICAgICB9CiAKLSAgICBXZWFrKFQqLCBXZWFrSGFuZGxlT3duZXIqID0gMCwgdm9pZCogY29u
dGV4dCA9IDApOworICAgIFdlYWsoVCosIFdlYWtIYW5kbGVPd25lciogPSAwLCB2b2lkKiBjb250
ZXh0ID0gMCwgYm9vbCB1c2VWaXJ0dWFsRmluYWxpemVyID0gdHJ1ZSk7CiAKICAgICBlbnVtIEhh
c2hUYWJsZURlbGV0ZWRWYWx1ZVRhZyB7IEhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwogICAgIGJv
b2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJbXBsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9XZWFrSW1wbC5oCmluZGV4IGNhOTNmYjIuLjExMWQ1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJbXBsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvV2Vha0ltcGwuaApAQCAtNDUsMTIgKzQ1LDIzIEBAIHB1YmxpYzoKICAgICAgICAgU3Rh
dGVNYXNrICAgPSAweDMKICAgICB9OwogCisgICAgZW51bSBGaW5hbGl6YXRpb25Nb2RlIHsKKyAg
ICAgICAgU2ltcGxlRmluYWxpemVyICA9IDB4MCwKKyAgICAgICAgVmlydHVhbEZpbmFsaXplciA9
IDB4MSwKKyAgICB9OworCisgICAgZW51bSB7CisgICAgICAgIEZpbmFsaXphdGlvbk1hc2sgPSAw
eDEKKyAgICB9OworCiAgICAgV2Vha0ltcGwoKTsKLSAgICBXZWFrSW1wbChKU1ZhbHVlLCBXZWFr
SGFuZGxlT3duZXIqLCB2b2lkKiBjb250ZXh0KTsKKyAgICBXZWFrSW1wbChKU1ZhbHVlLCBXZWFr
SGFuZGxlT3duZXIqLCB2b2lkKiBjb250ZXh0LCBib29sIHVzZVZpcnR1YWxGaW5hbGl6ZXIpOwog
CiAgICAgU3RhdGUgc3RhdGUoKTsKICAgICB2b2lkIHNldFN0YXRlKFN0YXRlKTsKIAorICAgIEZp
bmFsaXphdGlvbk1vZGUgZmluYWxpemF0aW9uTW9kZSgpOworCiAgICAgY29uc3QgSlNWYWx1ZSYg
anNWYWx1ZSgpOwogICAgIFdlYWtIYW5kbGVPd25lciogd2Vha0hhbmRsZU93bmVyKCk7CiAgICAg
dm9pZCogY29udGV4dCgpOwpAQCAtNzAsMTAgKzgxLDEwIEBAIGlubGluZSBXZWFrSW1wbDo6V2Vh
a0ltcGwoKQogICAgIHNldFN0YXRlKERlYWxsb2NhdGVkKTsKIH0KIAotaW5saW5lIFdlYWtJbXBs
OjpXZWFrSW1wbChKU1ZhbHVlIGpzVmFsdWUsIFdlYWtIYW5kbGVPd25lciogd2Vha0hhbmRsZU93
bmVyLCB2b2lkKiBjb250ZXh0KQoraW5saW5lIFdlYWtJbXBsOjpXZWFrSW1wbChKU1ZhbHVlIGpz
VmFsdWUsIFdlYWtIYW5kbGVPd25lciogd2Vha0hhbmRsZU93bmVyLCB2b2lkKiBjb250ZXh0LCBi
b29sIHVzZVZpcnR1YWxGaW5hbGl6ZXIpCiAgICAgOiBtX2pzVmFsdWUoanNWYWx1ZSkKICAgICAs
IG1fd2Vha0hhbmRsZU93bmVyKHdlYWtIYW5kbGVPd25lcikKLSAgICAsIG1fY29udGV4dChjb250
ZXh0KQorICAgICwgbV9jb250ZXh0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KChyZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkgJiB+RmluYWxpemF0aW9uTWFzaykgfCAodXNlVmly
dHVhbEZpbmFsaXplciA/IFZpcnR1YWxGaW5hbGl6ZXIgOiBTaW1wbGVGaW5hbGl6ZXIpKSkKIHsK
ICAgICBBU1NFUlQoc3RhdGUoKSA9PSBMaXZlKTsKICAgICBBU1NFUlQobV9qc1ZhbHVlICYmIG1f
anNWYWx1ZS5pc0NlbGwoKSk7CkBAIC0xMDAsOSArMTExLDE0IEBAIGlubGluZSBXZWFrSGFuZGxl
T3duZXIqIFdlYWtJbXBsOjp3ZWFrSGFuZGxlT3duZXIoKQogICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PFdlYWtIYW5kbGVPd25lcio+KChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV93
ZWFrSGFuZGxlT3duZXIpICYgflN0YXRlTWFzaykpOwogfQogCitpbmxpbmUgV2Vha0ltcGw6OkZp
bmFsaXphdGlvbk1vZGUgV2Vha0ltcGw6OmZpbmFsaXphdGlvbk1vZGUoKQoreworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxGaW5hbGl6YXRpb25Nb2RlPihyZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4obV9jb250ZXh0KSAmIEZpbmFsaXphdGlvbk1hc2spOworfQorCiBpbmxpbmUgdm9pZCogV2Vh
a0ltcGw6OmNvbnRleHQoKQogewotICAgIHJldHVybiBtX2NvbnRleHQ7CisgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9jb250
ZXh0KSAmIH5GaW5hbGl6YXRpb25NYXNrKSk7CiB9CiAKIGlubGluZSBXZWFrSW1wbCogV2Vha0lt
cGw6OmFzV2Vha0ltcGwoSlNWYWx1ZSogc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1dlYWtJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9X
ZWFrSW5saW5lcy5oCmluZGV4IGZlNjE0NDcuLmI1NjhlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vha0lubGluZXMuaApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFdlYWs8VD46OldlYWsoVCogY2VsbCwg
V2Vha0hhbmRsZU93bmVyKiB3ZWFrT3duZXIsIHZvaWQqIGNvbnRleHQpCi0gICAgOiBtX2ltcGwo
Y2VsbCA/IFdlYWtTZXQ6OmFsbG9jYXRlKGNlbGwsIHdlYWtPd25lciwgY29udGV4dCkgOiAwKQor
dGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFdlYWs8VD46OldlYWsoVCogY2VsbCwgV2Vha0hh
bmRsZU93bmVyKiB3ZWFrT3duZXIsIHZvaWQqIGNvbnRleHQsIGJvb2wgdXNlVmlydHVhbEZpbmFs
aXplcikKKyAgICA6IG1faW1wbChjZWxsID8gV2Vha1NldDo6YWxsb2NhdGUoY2VsbCwgd2Vha093
bmVyLCBjb250ZXh0LCB1c2VWaXJ0dWFsRmluYWxpemVyKSA6IG51bGxwdHIpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXQuaAppbmRleCBkYmRlNTEwLi5jMjkxMDdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1NldC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFdl
YWtTZXQgewogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgV2Vha0ltcGwqIGFsbG9jYXRlKEpTVmFsdWUsIFdlYWtIYW5kbGVPd25l
ciogPSAwLCB2b2lkKiBjb250ZXh0ID0gMCk7CisgICAgc3RhdGljIFdlYWtJbXBsKiBhbGxvY2F0
ZShKU1ZhbHVlLCBXZWFrSGFuZGxlT3duZXIqID0gMCwgdm9pZCogY29udGV4dCA9IDAsIGJvb2wg
dXNlVmlydHVhbEZpbmFsaXplciA9IHRydWUpOwogICAgIHN0YXRpYyB2b2lkIGRlYWxsb2NhdGUo
V2Vha0ltcGwqKTsKIAogICAgIFdlYWtTZXQoVk0qLCBNYXJrZWRCbG9jayYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1NldElubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXRJbmxpbmVzLmgKaW5kZXggZjIzOTIyNC4uMzQ4Zjk0
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1NldElubGluZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0SW5saW5lcy5oCkBAIC0z
MCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1pbmxpbmUgV2Vha0ltcGwqIFdlYWtT
ZXQ6OmFsbG9jYXRlKEpTVmFsdWUganNWYWx1ZSwgV2Vha0hhbmRsZU93bmVyKiB3ZWFrSGFuZGxl
T3duZXIsIHZvaWQqIGNvbnRleHQpCitpbmxpbmUgV2Vha0ltcGwqIFdlYWtTZXQ6OmFsbG9jYXRl
KEpTVmFsdWUganNWYWx1ZSwgV2Vha0hhbmRsZU93bmVyKiB3ZWFrSGFuZGxlT3duZXIsIHZvaWQq
IGNvbnRleHQsIGJvb2wgdXNlVmlydHVhbEZpbmFsaXplcikKIHsKICAgICBXZWFrU2V0JiB3ZWFr
U2V0ID0gTWFya2VkQmxvY2s6OmJsb2NrRm9yKGpzVmFsdWUuYXNDZWxsKCkpLT53ZWFrU2V0KCk7
CiAgICAgV2Vha0Jsb2NrOjpGcmVlQ2VsbCogYWxsb2NhdG9yID0gd2Vha1NldC5tX2FsbG9jYXRv
cjsKQEAgLTM5LDE2ICszOSwyOSBAQCBpbmxpbmUgV2Vha0ltcGwqIFdlYWtTZXQ6OmFsbG9jYXRl
KEpTVmFsdWUganNWYWx1ZSwgV2Vha0hhbmRsZU93bmVyKiB3ZWFrSGFuZGxlTwogICAgIHdlYWtT
ZXQubV9hbGxvY2F0b3IgPSBhbGxvY2F0b3ItPm5leHQ7CiAKICAgICBXZWFrSW1wbCogd2Vha0lt
cGwgPSBXZWFrQmxvY2s6OmFzV2Vha0ltcGwoYWxsb2NhdG9yKTsKLSAgICByZXR1cm4gbmV3IChO
b3ROdWxsLCB3ZWFrSW1wbCkgV2Vha0ltcGwoanNWYWx1ZSwgd2Vha0hhbmRsZU93bmVyLCBjb250
ZXh0KTsKKyAgICByZXR1cm4gbmV3IChOb3ROdWxsLCB3ZWFrSW1wbCkgV2Vha0ltcGwoanNWYWx1
ZSwgd2Vha0hhbmRsZU93bmVyLCBjb250ZXh0LCB1c2VWaXJ0dWFsRmluYWxpemVyKTsKIH0KIAog
aW5saW5lIHZvaWQgV2Vha0Jsb2NrOjpmaW5hbGl6ZShXZWFrSW1wbCogd2Vha0ltcGwpCiB7CiAg
ICAgQVNTRVJUKHdlYWtJbXBsLT5zdGF0ZSgpID09IFdlYWtJbXBsOjpEZWFkKTsKKworICAgIGlm
ICh3ZWFrSW1wbC0+ZmluYWxpemF0aW9uTW9kZSgpID09IFdlYWtJbXBsOjpTaW1wbGVGaW5hbGl6
ZXIpIHsKKyAgICAgICAgLy8gRG9uJ3QgYm90aGVyIG1vdmluZyB0aGUgV2Vha0ltcGwgdG8gRmlu
YWxpemVkIHN0YXRlLCB3ZSBza2lwIHN0cmFpZ2h0IHRvIERlYWxsb2NhdGVkLgorICAgICAgICBX
ZWFrSW1wbCoqIGltcGwgPSBzdGF0aWNfY2FzdDxXZWFrSW1wbCoqPih3ZWFrSW1wbC0+Y29udGV4
dCgpKTsKKyAgICAgICAgQVNTRVJUKCppbXBsKTsKKyAgICAgICAgQVNTRVJUKCoqaW1wbCA9PSB3
ZWFrSW1wbCk7CisgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSB3cml0ZSB0aHJvdWdoICd3ZWFrSW1w
bCcgaW5zdGVhZCBvZiAnKmltcGwnIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSAnaW1wbCcuCisgICAg
ICAgIFdlYWtTZXQ6OmRlYWxsb2NhdGUod2Vha0ltcGwpOworICAgICAgICAqaW1wbCA9IG51bGxw
dHI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB3ZWFrSW1wbC0+c2V0U3RhdGUoV2Vh
a0ltcGw6OkZpbmFsaXplZCk7CiAgICAgV2Vha0hhbmRsZU93bmVyKiB3ZWFrSGFuZGxlT3duZXIg
PSB3ZWFrSW1wbC0+d2Vha0hhbmRsZU93bmVyKCk7CiAgICAgaWYgKCF3ZWFrSGFuZGxlT3duZXIp
CiAgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQod2Vha0ltcGwtPmZpbmFsaXphdGlvbk1vZGUo
KSA9PSBXZWFrSW1wbDo6VmlydHVhbEZpbmFsaXplcik7CiAgICAgd2Vha0hhbmRsZU93bmVyLT5m
aW5hbGl6ZShIYW5kbGU8VW5rbm93bj46OndyYXBTbG90KCZjb25zdF9jYXN0PEpTVmFsdWUmPih3
ZWFrSW1wbC0+anNWYWx1ZSgpKSksIHdlYWtJbXBsLT5jb250ZXh0KCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNTE4YjFjYy4uZWMwMzZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1
LTA1LTA0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
YSBmYXN0IHBhdGggZm9yIHNpbXBsZSBXZWFrIGZpbmFsaXphdGlvbi4KKyAgICAgICAgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE0NDU5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2Ugc2ltcGxlIGZpbmFsaXplcnMgZm9yIG1haW4gd29ybGQgRE9N
IHdyYXBwZXJzLgorCisgICAgICAgIFRoaXMgaXMgYSBtYXNzaXZlIHNwZWVkdXAgb2YgV2Vha0Js
b2NrOjpzd2VlcCgpIG9uIERyb21hZW8vZG9tLW1vZGlmeSAodGFraW5nIGl0IGZyb20KKyAgICAg
ICAgNy4yJSBvZiB0aGUgcHJvZmlsZSBkb3duIHRvIDMuMCUuKQorCisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlSW5saW5lcy5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
V3JhcHBhYmxlOjpzZXRXcmFwcGVyKToKKwogMjAxNS0wNS0wMiAgQW5kcmVhcyBLbGluZyAgPGFr
bGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU3R5bGUgcmVjYWxjIGFsd2F5cyBjYXVzZXMgZGV0
YWNoIGZyb20gc2hhcmVkIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGVJbmxpbmVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGVJbmxpbmVzLmgKaW5kZXggZGFi
YjY1Ny4uZThmZDA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0V3JhcHBhYmxlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFdyYXBwYWJsZUlubGluZXMuaApAQCAtNDMsMTAgKzQzLDEwIEBAIGlubGluZSBKU0RPTVdy
YXBwZXIqIFNjcmlwdFdyYXBwYWJsZTo6d3JhcHBlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fd3Jh
cHBlci5nZXQoKTsKIH0KIAotaW5saW5lIHZvaWQgU2NyaXB0V3JhcHBhYmxlOjpzZXRXcmFwcGVy
KEpTRE9NV3JhcHBlciogd3JhcHBlciwgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25l
ciwgdm9pZCogY29udGV4dCkKK2lubGluZSB2b2lkIFNjcmlwdFdyYXBwYWJsZTo6c2V0V3JhcHBl
cihKU0RPTVdyYXBwZXIqIHdyYXBwZXIsIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3du
ZXIsIHZvaWQqKQogewogICAgIEFTU0VSVCghbV93cmFwcGVyKTsKLSAgICBtX3dyYXBwZXIgPSBK
U0M6OldlYWs8SlNET01XcmFwcGVyPih3cmFwcGVyLCB3cmFwcGVyT3duZXIsIGNvbnRleHQpOwor
ICAgIG1fd3JhcHBlciA9IEpTQzo6V2VhazxKU0RPTVdyYXBwZXI+KHdyYXBwZXIsIHdyYXBwZXJP
d25lciwgJm1fd3JhcHBlciwgZmFsc2UpOwogfQogCiBpbmxpbmUgdm9pZCBTY3JpcHRXcmFwcGFi
bGU6OmNsZWFyV3JhcHBlcihKU0RPTVdyYXBwZXIqIHdyYXBwZXIpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>