<?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>216894</bug_id>
          
          <creation_ts>2020-09-23 13:30:58 -0700</creation_ts>
          <short_desc>Use less explicit ref() / deref() calls in WebAudio code</short_desc>
          <delta_ts>2020-09-23 16:07:17 -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>Web Audio</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>calvaris</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1691241</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-23 13:30:58 -0700</bug_when>
    <thetext>Use less explicit ref() / deref() calls in WebAudio code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691244</commentid>
    <comment_count>1</comment_count>
      <attachid>409498</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-23 13:33:33 -0700</bug_when>
    <thetext>Created attachment 409498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691291</commentid>
    <comment_count>2</comment_count>
      <attachid>409498</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-23 15:55:15 -0700</bug_when>
    <thetext>Comment on attachment 409498
Patch

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

&gt; Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp:88
&gt; +    auto protectedThis = makeRef(*this);

Not sure I understand where the need for this comes from exactly. Not that I am arguing to not do it, just that I was wondering how I would have known it’s needed.

&gt; Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp:102
&gt; +    m_renderThread = Thread::create(&quot;offline renderer&quot;, [this, protectedThis = WTFMove(protectedThis)]() mutable {

Not sure anyone else agrees, but I’ve always been a fan of *not* capturing this in cases like this. I know it makes the code less elegant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691292</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-23 15:59:06 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 409498 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=409498&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp:88
&gt; &gt; +    auto protectedThis = makeRef(*this);
&gt; 
&gt; Not sure I understand where the need for this comes from exactly. Not that I
&gt; am arguing to not do it, just that I was wondering how I would have known
&gt; it’s needed.

The pre-existing code was already ref-ing this but from inside the lock() function (and deref&apos;ing in unlock()). I added the protector to maintain pre-existing behavior.

&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp:102
&gt; &gt; +    m_renderThread = Thread::create(&quot;offline renderer&quot;, [this, protectedThis = WTFMove(protectedThis)]() mutable {
&gt; 
&gt; Not sure anyone else agrees, but I’ve always been a fan of *not* capturing
&gt; this in cases like this. I know it makes the code less elegant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691302</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-23 16:06:22 -0700</bug_when>
    <thetext>Committed r267505: &lt;https://trac.webkit.org/changeset/267505&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409498.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691304</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-23 16:07:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/69463911&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409498</attachid>
            <date>2020-09-23 13:33:33 -0700</date>
            <delta_ts>2020-09-23 16:06:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216894-20200923133332.patch</filename>
            <type>text/plain</type>
            <size>8223</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY0NTE1ODY4OGY0MWM4
OGIxZThhMWU1YjFhNzE1OTc1MDM2Mzc2MC4uY2ZiNTExYmYwNTQ1NGVjNTQ5MTZkMjlkNDFkYzhh
YTY1YzM0YTVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA5LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGxlc3MgZXhwbGljaXQg
cmVmKCkgLyBkZXJlZigpIGNhbGxzIGluIFdlYkF1ZGlvIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjg5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmNsZWFy
UGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6Om1h
a2VQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVt
ZW50QXVkaW9Tb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudEF1
ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVu
dEF1ZGlvU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKToKKyAgICAgICAgKiBodG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFFbmdpbmVXYXNVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKToKKwogMjAyMC0wOS0yMyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFR1cm4gb2ZmIHRoZSBsZWdhY3kgcHJlZml4ZWQg
V2ViQXVkaW8gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCAzMjk4Y2EyZGMyOGIzZThkOTE3Nzc5ZjJiMWY2MDhm
ZWYyZjllYmNhLi43Yzk2MTlmNWRjZDUxMWIwYWE4MWM0OTc2ODIzNGU2ZWE3YTcyMTUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAKQEAgLTEzMDMsMTkgKzEzMDMsMTMgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjphZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmUKIAog
dm9pZCBCYXNlQXVkaW9Db250ZXh0OjpjbGVhclBlbmRpbmdBY3Rpdml0eSgpCiB7Ci0gICAgaWYg
KCFtX3BlbmRpbmdBY3Rpdml0eSkKLSAgICAgICAgcmV0dXJuOwogICAgIG1fcGVuZGluZ0FjdGl2
aXR5ID0gbnVsbHB0cjsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgc3BlY2lmaWMgZGVyZWYo
KSBhbmQgcmVmKCkgY2FsbCBpbiBtYWtlUGVuZGluZ0FjdGl2aXR5KCkuCi0gICAgZGVyZWYoKTsK
IH0KIAogdm9pZCBCYXNlQXVkaW9Db250ZXh0OjptYWtlUGVuZGluZ0FjdGl2aXR5KCkKIHsKLSAg
ICBpZiAobV9wZW5kaW5nQWN0aXZpdHkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3BlbmRpbmdB
Y3Rpdml0eSA9IEFjdGl2ZURPTU9iamVjdDo6bWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7Ci0g
ICAgcmVmKCk7CisgICAgaWYgKCFtX3BlbmRpbmdBY3Rpdml0eSkKKyAgICAgICAgbV9wZW5kaW5n
QWN0aXZpdHkgPSBBY3RpdmVET01PYmplY3Q6Om1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwog
fQogCiBQZXJpb2RpY1dhdmUmIEJhc2VBdWRpb0NvbnRleHQ6OnBlcmlvZGljV2F2ZShPc2NpbGxh
dG9yVHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCmluZGV4IDk2ZGEzMTY1
NDYzZmM5Yzc4NTM3NDJmYzA3ZjZjZmZiZWI4NzE3ZTEuLmIzOWMyODg2MTRiNDMxNGE2ZmZiZjcy
NjEwN2U5ZTcyMWQ5OWFhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKQEAgLTg1
LDYgKzg1LDcgQEAgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjp+TWVkaWFFbGVtZW50QXVk
aW9Tb3VyY2VOb2RlKCkKIAogdm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnNldEZv
cm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291cmNlU2FtcGxlUmF0ZSkKIHsK
KyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKICAgICBtX211dGVkID0g
d291bGRUYWludE9yaWdpbigpOwogCiAgICAgaWYgKG51bWJlck9mQ2hhbm5lbHMgIT0gbV9zb3Vy
Y2VOdW1iZXJPZkNoYW5uZWxzIHx8IHNvdXJjZVNhbXBsZVJhdGUgIT0gbV9zb3VyY2VTYW1wbGVS
YXRlKSB7CkBAIC0xMDAsNyArMTAxLDcgQEAgdm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5v
ZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291cmMKICAgICAg
ICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2FtcGxlUmF0ZTsKIAogICAgICAgICAvLyBT
eW5jaHJvbml6ZSB3aXRoIHByb2Nlc3MoKS4KLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
aygqdGhpcyk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7
CiAKICAgICAgICAgaWYgKHNvdXJjZVNhbXBsZVJhdGUgIT0gc2FtcGxlUmF0ZSgpKSB7CiAgICAg
ICAgICAgICBkb3VibGUgc2NhbGVGYWN0b3IgPSBzb3VyY2VTYW1wbGVSYXRlIC8gc2FtcGxlUmF0
ZSgpOwpAQCAtMTQ2LDcgKzE0Nyw3IEBAIHZvaWQgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2Rl
Ojpwcm9jZXNzKHNpemVfdCBudW1iZXJPZkZyYW1lcykKICAgICAvLyBVc2UgYSBzdGQ6OnRyeV90
b19sb2NrIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQu
CiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBsb2NrIHRoZW4gdGhlIEhUTUxNZWRp
YUVsZW1lbnQgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mCiAgICAgLy8gcmVjb25maWd1cmluZyBp
dHMgcGxheWJhY2sgZW5naW5lLCBzbyB3ZSBvdXRwdXQgc2lsZW5jZSBpbiB0aGlzIGNhc2UuCi0g
ICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4LCBzdGQ6OnRyeV90
b19sb2NrKTsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9wcm9jZXNzTG9jaywg
c3RkOjp0cnlfdG9fbG9jayk7CiAgICAgaWYgKCFsb2NrLm93bnNfbG9jaygpKSB7CiAgICAgICAg
IC8vIFdlIGZhaWxlZCB0byBhY3F1aXJlIHRoZSBsb2NrLgogICAgICAgICBvdXRwdXRCdXMtPnpl
cm8oKTsKQEAgLTE3NywxOCArMTc4LDYgQEAgdm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5v
ZGU6OnJlc2V0KCkKIHsKIH0KIAotdm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6Omxv
Y2soKQotewotICAgIHJlZigpOwotICAgIG1fcHJvY2Vzc011dGV4LmxvY2soKTsKLX0KLQotdm9p
ZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnVubG9jaygpCi17Ci0gICAgbV9wcm9jZXNz
TXV0ZXgudW5sb2NrKCk7Ci0gICAgZGVyZWYoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5o
CmluZGV4IDJlMzIwYjc3ZDZlYmJjNzg1NGQyYjQyYTM1MmI2ZWY2MDVkNGUxMWIuLmY1ZjkyOTNi
NzI4YTEyOGRmOWI1YjQzZWI0MDM2M2ZiMzA3ZDQ2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5v
ZGUuaApAQCAtNTUsOCArNTUsNyBAQCBwdWJsaWM6CiAgICAgLy8gQXVkaW9Tb3VyY2VQcm92aWRl
ckNsaWVudAogICAgIHZvaWQgc2V0Rm9ybWF0KHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9h
dCBzYW1wbGVSYXRlKSBvdmVycmlkZTsKIAotICAgIHZvaWQgbG9jaygpOwotICAgIHZvaWQgdW5s
b2NrKCk7CisgICAgTG9jayYgcHJvY2Vzc0xvY2soKSB7IHJldHVybiBtX3Byb2Nlc3NMb2NrOyB9
CiAKIHByaXZhdGU6CiAgICAgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlKEJhc2VBdWRpb0Nv
bnRleHQmLCBSZWY8SFRNTE1lZGlhRWxlbWVudD4mJik7CkBAIC03MSw3ICs3MCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCB3b3VsZFRhaW50T3JpZ2luKCk7CiAKICAgICBSZWY8SFRNTE1lZGlhRWxl
bWVudD4gbV9tZWRpYUVsZW1lbnQ7Ci0gICAgTG9jayBtX3Byb2Nlc3NNdXRleDsKKyAgICBMb2Nr
IG1fcHJvY2Vzc0xvY2s7CiAKICAgICB1bnNpZ25lZCBtX3NvdXJjZU51bWJlck9mQ2hhbm5lbHMg
eyAwIH07CiAgICAgZG91YmxlIG1fc291cmNlU2FtcGxlUmF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcAppbmRleCBmYzQzOTUyMTY1Nzc0M2ZlODRlMTc0MmZiMzRlZDUwYmY2
ZmUyOTUyLi5jMTgxYWJmZjg3YzM0N2NmMGZhNDAxNWE5NTI0ZGE4Y2M1OWNmMzI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5l
QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC05NSwxMiArOTUsMTMgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJlbmRlcmluZygpCiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFscmVhZHkgc3RhcnRl
ZCByZW5kZXJpbmciX3MgfTsKIAogICAgIG1fc3RhcnRlZFJlbmRlcmluZyA9IHRydWU7Ci0gICAg
cmVmKCk7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKICAgICAv
LyBGSVhNRTogU2hvdWxkIHdlIGNhbGwgbGF6eUluaXRpYWxpemUgaGVyZT8KICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHByb2JhYmx5IGxpbWl0IHRoZSBudW1iZXIgb2YgdGhyZWFkcyB3ZSBjcmVh
dGUgZm9yIG9mZmxpbmUgYXVkaW8uCi0gICAgbV9yZW5kZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0
ZSgib2ZmbGluZSByZW5kZXJlciIsIFt0aGlzXSB7CisgICAgbV9yZW5kZXJUaHJlYWQgPSBUaHJl
YWQ6OmNyZWF0ZSgib2ZmbGluZSByZW5kZXJlciIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RG
TW92ZShwcm90ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBv
ZmZsaW5lUmVuZGVyKCk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHJlc3VsdCwg
Y3VycmVudFNhbXBsZUZyYW1lID0gbV9jdXJyZW50U2FtcGxlRnJhbWVdIHsKKyAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgcmVzdWx0LCBjdXJyZW50U2FtcGxlRnJhbWUgPSBtX2N1cnJl
bnRTYW1wbGVGcmFtZSwgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIHsK
ICAgICAgICAgICAgIG1fc3RhcnRlZFJlbmRlcmluZyA9IGZhbHNlOwogICAgICAgICAgICAgc3dp
dGNoIChyZXN1bHQpIHsKICAgICAgICAgICAgIGNhc2UgT2ZmbGluZVJlbmRlclJlc3VsdDo6RmFp
bHVyZToKQEAgLTExMyw3ICsxMTQsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBPZmZsaW5lQXVkaW9E
ZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICAgICAgICAgICAgICBjb250ZXh0
KCkuZGlkU3VzcGVuZFJlbmRlcmluZyhjdXJyZW50U2FtcGxlRnJhbWUpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZGVyZWYoKTsKICAgICAgICAg
fSk7CiAgICAgfSwgVGhyZWFkVHlwZTo6QXVkaW8pOwogICAgIHJldHVybiB7IH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwZjk5OTc1Nzg5MDcxMzlmZGJm
MmRiY2UxNDdiM2M1YmNkZjgzMzgyLi5mYzVkZGM0MWMzNGEwZDI4NTIxODU1NjBkOWFiMjg4ZDFh
ODc2OWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTUw
MzQsOSArNTAzNCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVXYXNVcGRh
dGVkKCkKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgaWYgKG1fYXVkaW9Tb3VyY2VOb2Rl
ICYmIGF1ZGlvU291cmNlUHJvdmlkZXIoKSkgewotICAgICAgICBtX2F1ZGlvU291cmNlTm9kZS0+
bG9jaygpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYXVkaW9Tb3VyY2VOb2Rl
LT5wcm9jZXNzTG9jaygpKTsKICAgICAgICAgYXVkaW9Tb3VyY2VQcm92aWRlcigpLT5zZXRDbGll
bnQobV9hdWRpb1NvdXJjZU5vZGUpOwotICAgICAgICBtX2F1ZGlvU291cmNlTm9kZS0+dW5sb2Nr
KCk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTY1ODMsOCArNjU4Miw4IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6Y3JlYXRlTWVkaWFQbGF5ZXIoKQogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIp
OwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBpZiAobV9hdWRpb1NvdXJjZU5vZGUpCi0g
ICAgICAgIG1fYXVkaW9Tb3VyY2VOb2RlLT5sb2NrKCk7CisgICAgYXV0byBwcm90ZWN0ZWRBdWRp
b1NvdXJjZU5vZGUgPSBtYWtlUmVmUHRyKG1fYXVkaW9Tb3VyY2VOb2RlKTsKKyAgICBMb2NrZXI8
TG9jaz4gYXVkaW9Tb3VyY2VOb2RlTG9ja2VyKG1fYXVkaW9Tb3VyY2VOb2RlID8gJm1fYXVkaW9T
b3VyY2VOb2RlLT5wcm9jZXNzTG9jaygpIDogbnVsbHB0cik7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpCkBAIC02NjA5LDggKzY2MDgsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmNyZWF0ZU1lZGlhUGxheWVyKCkKICAgICAgICAgLy8gV2hlbiBjcmVhdGluZyB0aGUgcGxh
eWVyLCBtYWtlIHN1cmUgaXRzIEF1ZGlvU291cmNlUHJvdmlkZXIga25vd3MgYWJvdXQgdGhlIE1l
ZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS4KICAgICAgICAgaWYgKGF1ZGlvU291cmNlUHJvdmlk
ZXIoKSkKICAgICAgICAgICAgIGF1ZGlvU291cmNlUHJvdmlkZXIoKS0+c2V0Q2xpZW50KG1fYXVk
aW9Tb3VyY2VOb2RlKTsKLQotICAgICAgICBtX2F1ZGlvU291cmNlTm9kZS0+dW5sb2NrKCk7CiAg
ICAgfQogI2VuZGlmCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>