<?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>260389</bug_id>
          
          <creation_ts>2023-08-18 09:14:13 -0700</creation_ts>
          <short_desc>AX: Improve smart pointer usage in AXObjectCache</short_desc>
          <delta_ts>2023-08-21 07:20:34 -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>Accessibility</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Hoffman">jhoffman23</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>tyler_w</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1972063</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-08-18 09:14:13 -0700</bug_when>
    <thetext>Improve the usage of smart pointers in AXObjectCache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972064</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-08-18 09:14:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/114090467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972065</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-08-18 09:14:57 -0700</bug_when>
    <thetext>rdar://113803539</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972092</commentid>
    <comment_count>3</comment_count>
      <attachid>467328</attachid>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-08-18 10:55:26 -0700</bug_when>
    <thetext>Created attachment 467328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972104</commentid>
    <comment_count>4</comment_count>
      <attachid>467328</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-08-18 11:09:14 -0700</bug_when>
    <thetext>Comment on attachment 467328
Patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:2291
&gt; +    RefPtr protectedElement { element };
&gt; +
&gt;      if (nodeAndRendererAreValid(element) &amp;&amp; rendererNeedsDeferredUpdate(*element-&gt;renderer())) {
&gt; -        m_deferredAttributeChange.append({ element, attrName, oldValue, newValue });
&gt; +        m_deferredAttributeChange.append({ protectedElement, attrName, oldValue, newValue });
&gt;          if (!m_performCacheUpdateTimer.isActive())
&gt;              m_performCacheUpdateTimer.startOneShot(0_s);
&gt;          AXLOG(makeString(&quot;Deferring handling of attribute &quot;, attrName.localName().string(), &quot; for element &quot;, element-&gt;debugDescription()));
&gt;          return;
&gt;      }
&gt; -    handleAttributeChange(element, attrName, oldValue, newValue);
&gt; +    handleAttributeChange(protectedElement.get(), attrName, oldValue, newValue);

I don&apos;t think we need to protect this element with a RefPtr if !rendererNeedsDeferredUpdate(*element-&gt;renderer()) (because otherwise we append it to m_deferredAttributeChange which stores it as a WeakPtr). I think we only need to protect it if we&apos;re going to directly call handleAttributeChange with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972106</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-08-18 11:14:35 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #4)
&gt; Comment on attachment 467328 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=467328&amp;action=review
&gt; 
&gt; &gt; -    handleAttributeChange(element, attrName, oldValue, newValue);
&gt; &gt; +    handleAttributeChange(protectedElement.get(), attrName, oldValue, newValue);
&gt; 
&gt; I don&apos;t think we need to protect this element with a RefPtr if
&gt; !rendererNeedsDeferredUpdate(*element-&gt;renderer()) (because otherwise we
&gt; append it to m_deferredAttributeChange which stores it as a WeakPtr). I
&gt; think we only need to protect it if we&apos;re going to directly call
&gt; handleAttributeChange with it.

Gotcha—yeah that makes sense. I can move the refptr protection to before the handleAttributeChange call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972108</commentid>
    <comment_count>6</comment_count>
      <attachid>467330</attachid>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-08-18 11:19:09 -0700</bug_when>
    <thetext>Created attachment 467330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972191</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-08-18 19:33:40 -0700</bug_when>
    <thetext>Committed 267064@main (4e6fd1fb5461): &lt;https://commits.webkit.org/267064@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 467330.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972371</commentid>
    <comment_count>8</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-08-21 07:20:34 -0700</bug_when>
    <thetext>(In reply to Joshua Hoffman from comment #6)
&gt; Created attachment 467330 [details]
&gt; Patch

--- a/Source/WebCore/accessibility/AXObjectCache.cpp
+++ b/Source/WebCore/accessibility/AXObjectCache.cpp

@@ -2178,10 +2178,10 @@ void AXObjectCache::handleActiveDescendantChange(Element&amp; element, const AtomStr
     }

     // Handle active-descendant changes when the target allows for it, or the controlled object allows for it.
-    AccessibilityObject* target = nullptr;
+    RefPtr&lt;AccessibilityObject&gt; target { nullptr };

The RefPtr default constructor initializes the pointer to nullptr so the initializer list is unnecessary here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467328</attachid>
            <date>2023-08-18 10:55:26 -0700</date>
            <delta_ts>2023-08-18 11:19:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-260389-20230818105525.patch</filename>
            <type>text/plain</type>
            <size>4789</size>
            <attacher name="Joshua Hoffman">jhoffman23</attacher>
            
              <data encoding="base64">RnJvbSAyMTAwMTQzODI5YmIwMWQ0YWU3NTE2M2QxMDhiZGM0OTQ2OGIwNDM0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBob2ZmbWFuam9zaHVhIDxqaG9mZm1hbjIzQGFwcGxlLmNvbT4K
RGF0ZTogRnJpLCAxOCBBdWcgMjAyMyAwOToxMzoxMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBJbXByb3ZlIHNtYXJ0IHBvaW50ZXIgdXNhZ2UgaW4gQVhPYmplY3RDYWNoZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MDM4OSByZGFyOi8vcHJvYmxlbS8xMTQw
OTA0NjcKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKSW1wcm92ZSB0aGUgdXNhZ2Ugb2Yg
c21hcnQgcG9pbnRlcnMgaW4gQVhPYmplY3RDYWNoZSBpbiBhY2NvcmRhbmNlIHdpdGggV2ViS2l0
IGd1aWRlbGluZXMgaHR0cHM6Ly9naXRodWIuY29tL1dlYktpdC9XZWJLaXQvd2lraS9TbWFydC1Q
b2ludGVyLVVzYWdlLUd1aWRlbGluZXMuCgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHA6Ci0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCAgIHwgMjQgKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEz
IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGMyY2I0YTY1ZjU0My4uMjM1NjZlNjI5
OTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKQEAgLTIxNTAsNyArMjE1MCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZl
RGVzY2VuZGFudENoYW5nZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9tU3RyCiAgICAgaWYg
KCFlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2VsZWN0aW9uKCkuaXNGb2N1c2VkQW5kQWN0
aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIG9iamVjdCA9IGdldE9yQ3JlYXRl
KCZlbGVtZW50KTsKKyAgICBSZWZQdHIgb2JqZWN0ID0gZ2V0T3JDcmVhdGUoJmVsZW1lbnQpOwog
ICAgIGlmICghb2JqZWN0KQogICAgICAgICByZXR1cm47CiAKQEAgLTIxNjIsMTMgKzIxNjIsMTMg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50Q2hhbmdlKEVsZW1l
bnQmIGVsZW1lbnQsIGNvbnN0IEF0b21TdHIKICAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLmZv
Y3VzZWRFbGVtZW50KCkgIT0gJmVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8q
IGFjdGl2ZURlc2NlbmRhbnQgPSBvYmplY3QtPmFjdGl2ZURlc2NlbmRhbnQoKTsKKyAgICBSZWZQ
dHIgYWN0aXZlRGVzY2VuZGFudCA9IG9iamVjdC0+YWN0aXZlRGVzY2VuZGFudCgpOwogICAgIGlm
ICghYWN0aXZlRGVzY2VuZGFudCkgewogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVE
X1RSRUUpCiAgICAgICAgIGlmIChvYmplY3QtPnNob3VsZEZvY3VzQWN0aXZlRGVzY2VuZGFudCgp
CiAgICAgICAgICAgICAmJiAhb2xkVmFsdWUuaXNFbXB0eSgpICYmIG5ld1ZhbHVlLmlzRW1wdHko
KSkgewogICAgICAgICAgICAgLy8gVGhlIGZvY3VzZWQgb2JqZWN0IGp1c3QgbG9zdCBpdHMgYWN0
aXZlIGRlc2NlbmRhbnQsIHNvIHNldCB0aGUgSXNvbGF0ZWRUcmVlIGZvY3VzZWQgb2JqZWN0IGJh
Y2sgdG8gaXQuCi0gICAgICAgICAgICBzZXRJc29sYXRlZFRyZWVGb2N1c2VkT2JqZWN0KG9iamVj
dCk7CisgICAgICAgICAgICBzZXRJc29sYXRlZFRyZWVGb2N1c2VkT2JqZWN0KG9iamVjdC5nZXQo
KSk7CiAgICAgICAgIH0KICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShvbGRWYWx1ZSk7CkBA
IC0yMTc4LDEwICsyMTc4LDEwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVz
Y2VuZGFudENoYW5nZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9tU3RyCiAgICAgfQogCiAg
ICAgLy8gSGFuZGxlIGFjdGl2ZS1kZXNjZW5kYW50IGNoYW5nZXMgd2hlbiB0aGUgdGFyZ2V0IGFs
bG93cyBmb3IgaXQsIG9yIHRoZSBjb250cm9sbGVkIG9iamVjdCBhbGxvd3MgZm9yIGl0LgotICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHRhcmdldCA9IG51bGxwdHI7CisgICAgUmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+IHRhcmdldCB7IG51bGxwdHIgfTsKICAgICBpZiAob2JqZWN0LT5zaG91
bGRGb2N1c0FjdGl2ZURlc2NlbmRhbnQoKSkgewogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUUpCi0gICAgICAgIHNldElzb2xhdGVkVHJlZUZvY3VzZWRPYmplY3QoYWN0aXZl
RGVzY2VuZGFudCk7CisgICAgICAgIHNldElzb2xhdGVkVHJlZUZvY3VzZWRPYmplY3QoYWN0aXZl
RGVzY2VuZGFudC5nZXQoKSk7CiAjZW5kaWYKICAgICAgICAgdGFyZ2V0ID0gb2JqZWN0OwogICAg
IH0gZWxzZSBpZiAob2JqZWN0LT5pc0NvbWJvQm94KCkpIHsKQEAgLTIyMDYsMTcgKzIyMDYsMTcg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50Q2hhbmdlKEVsZW1l
bnQmIGVsZW1lbnQsIGNvbnN0IEF0b21TdHIKICAgICBpZiAodGFyZ2V0KSB7CiAjaWYgRU5BQkxF
KEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKICAgICAgICAgaWYgKHRhcmdldCAhPSBvYmpl
Y3QpCi0gICAgICAgICAgICB1cGRhdGVJc29sYXRlZFRyZWUodGFyZ2V0LCBBWE5vdGlmaWNhdGlv
bjo6QVhBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCk7CisgICAgICAgICAgICB1cGRhdGVJc29sYXRl
ZFRyZWUodGFyZ2V0LmdldCgpLCBBWE5vdGlmaWNhdGlvbjo6QVhBY3RpdmVEZXNjZW5kYW50Q2hh
bmdlZCk7CiAjZW5kaWYKIAotICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24odGFyZ2V0
LCBBWE5vdGlmaWNhdGlvbjo6QVhBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCk7CisgICAgICAgIHBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbih0YXJnZXQuZ2V0KCksIEFYTm90aWZpY2F0aW9uOjpBWEFj
dGl2ZURlc2NlbmRhbnRDaGFuZ2VkKTsKIAogICAgICAgICAvLyBUYWJsZSBjZWxsIGFjdGl2ZSBk
ZXNjZW5kYW50IGNoYW5nZXMgc2hvdWxkIHRyaWdnZXIgc2VsZWN0ZWQgY2VsbCBjaGFuZ2VzLgog
ICAgICAgICBpZiAodGFyZ2V0LT5pc1RhYmxlKCkgJiYgYWN0aXZlRGVzY2VuZGFudC0+aXNFeHBv
c2VkVGFibGVDZWxsKCkpIHsKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
KQotICAgICAgICAgICAgdXBkYXRlSXNvbGF0ZWRUcmVlKHRhcmdldCwgQVhOb3RpZmljYXRpb246
OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQpOworICAgICAgICAgICAgdXBkYXRlSXNvbGF0ZWRUcmVl
KHRhcmdldC5nZXQoKSwgQVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQpOwog
I2VuZGlmCi0gICAgICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24odGFyZ2V0LCBBWFNl
bGVjdGVkQ2VsbHNDaGFuZ2VkKTsKKyAgICAgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bih0YXJnZXQuZ2V0KCksIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQpOwogICAgICAgICB9CiAgICAg
fQogfQpAQCAtMjI3OSwxNCArMjI3OSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyQXR0
cmlidXRlQ2hhbmdlSWZOZWVkZWQoRWxlbWVudCogZWxlbWVudCwgY29uc3QgUXVhbGlmaQogewog
ICAgIEFYVFJBQ0UobWFrZVN0cmluZygiQVhPYmplY3RDYWNoZTo6ZGVmZXJBdHRyaWJ1dGVDaGFu
Z2VJZk5lZWRlZCAweCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSkp
KTsKIAorICAgIFJlZlB0ciBwcm90ZWN0ZWRFbGVtZW50IHsgZWxlbWVudCB9OworCiAgICAgaWYg
KG5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKGVsZW1lbnQpICYmIHJlbmRlcmVyTmVlZHNEZWZlcnJl
ZFVwZGF0ZSgqZWxlbWVudC0+cmVuZGVyZXIoKSkpIHsKLSAgICAgICAgbV9kZWZlcnJlZEF0dHJp
YnV0ZUNoYW5nZS5hcHBlbmQoeyBlbGVtZW50LCBhdHRyTmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVl
IH0pOworICAgICAgICBtX2RlZmVycmVkQXR0cmlidXRlQ2hhbmdlLmFwcGVuZCh7IHByb3RlY3Rl
ZEVsZW1lbnQsIGF0dHJOYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUgfSk7CiAgICAgICAgIGlmICgh
bV9wZXJmb3JtQ2FjaGVVcGRhdGVUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgbV9wZXJm
b3JtQ2FjaGVVcGRhdGVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKICAgICAgICAgQVhMT0cobWFr
ZVN0cmluZygiRGVmZXJyaW5nIGhhbmRsaW5nIG9mIGF0dHJpYnV0ZSAiLCBhdHRyTmFtZS5sb2Nh
bE5hbWUoKS5zdHJpbmcoKSwgIiBmb3IgZWxlbWVudCAiLCBlbGVtZW50LT5kZWJ1Z0Rlc2NyaXB0
aW9uKCkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBoYW5kbGVBdHRyaWJ1dGVDaGFu
Z2UoZWxlbWVudCwgYXR0ck5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZSk7CisgICAgaGFuZGxlQXR0
cmlidXRlQ2hhbmdlKHByb3RlY3RlZEVsZW1lbnQuZ2V0KCksIGF0dHJOYW1lLCBvbGRWYWx1ZSwg
bmV3VmFsdWUpOwogfQogCiBib29sIEFYT2JqZWN0Q2FjaGU6OnNob3VsZFByb2Nlc3NBdHRyaWJ1
dGVDaGFuZ2UoRWxlbWVudCogZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467330</attachid>
            <date>2023-08-18 11:19:09 -0700</date>
            <delta_ts>2023-08-18 19:33:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-260389-20230818111909.patch</filename>
            <type>text/plain</type>
            <size>4273</size>
            <attacher name="Joshua Hoffman">jhoffman23</attacher>
            
              <data encoding="base64">RnJvbSA5NzYzYjY0YTg3MmVlNmZiOWNkNWJlMGMzM2ViNmEyN2E5YzIzODJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBob2ZmbWFuam9zaHVhIDxqaG9mZm1hbjIzQGFwcGxlLmNvbT4K
RGF0ZTogRnJpLCAxOCBBdWcgMjAyMyAwOToxMzoxMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBJbXByb3ZlIHNtYXJ0IHBvaW50ZXIgdXNhZ2UgaW4gQVhPYmplY3RDYWNoZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MDM4OSByZGFyOi8vcHJvYmxlbS8xMTQw
OTA0NjcKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKSW1wcm92ZSB0aGUgdXNhZ2Ugb2Yg
c21hcnQgcG9pbnRlcnMgaW4gQVhPYmplY3RDYWNoZSBpbiBhY2NvcmRhbmNlIHdpdGggV2ViS2l0
IGd1aWRlbGluZXMgaHR0cHM6Ly9naXRodWIuY29tL1dlYktpdC9XZWJLaXQvd2lraS9TbWFydC1Q
b2ludGVyLVVzYWdlLUd1aWRlbGluZXMuCgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHA6Ci0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCAgIHwgMjEgKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEx
IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGMyY2I0YTY1ZjU0My4uYWE1NmFiM2Yw
ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKQEAgLTIxNTAsNyArMjE1MCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZl
RGVzY2VuZGFudENoYW5nZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9tU3RyCiAgICAgaWYg
KCFlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2VsZWN0aW9uKCkuaXNGb2N1c2VkQW5kQWN0
aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIG9iamVjdCA9IGdldE9yQ3JlYXRl
KCZlbGVtZW50KTsKKyAgICBSZWZQdHIgb2JqZWN0ID0gZ2V0T3JDcmVhdGUoJmVsZW1lbnQpOwog
ICAgIGlmICghb2JqZWN0KQogICAgICAgICByZXR1cm47CiAKQEAgLTIxNjIsMTMgKzIxNjIsMTMg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50Q2hhbmdlKEVsZW1l
bnQmIGVsZW1lbnQsIGNvbnN0IEF0b21TdHIKICAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLmZv
Y3VzZWRFbGVtZW50KCkgIT0gJmVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8q
IGFjdGl2ZURlc2NlbmRhbnQgPSBvYmplY3QtPmFjdGl2ZURlc2NlbmRhbnQoKTsKKyAgICBSZWZQ
dHIgYWN0aXZlRGVzY2VuZGFudCA9IG9iamVjdC0+YWN0aXZlRGVzY2VuZGFudCgpOwogICAgIGlm
ICghYWN0aXZlRGVzY2VuZGFudCkgewogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVE
X1RSRUUpCiAgICAgICAgIGlmIChvYmplY3QtPnNob3VsZEZvY3VzQWN0aXZlRGVzY2VuZGFudCgp
CiAgICAgICAgICAgICAmJiAhb2xkVmFsdWUuaXNFbXB0eSgpICYmIG5ld1ZhbHVlLmlzRW1wdHko
KSkgewogICAgICAgICAgICAgLy8gVGhlIGZvY3VzZWQgb2JqZWN0IGp1c3QgbG9zdCBpdHMgYWN0
aXZlIGRlc2NlbmRhbnQsIHNvIHNldCB0aGUgSXNvbGF0ZWRUcmVlIGZvY3VzZWQgb2JqZWN0IGJh
Y2sgdG8gaXQuCi0gICAgICAgICAgICBzZXRJc29sYXRlZFRyZWVGb2N1c2VkT2JqZWN0KG9iamVj
dCk7CisgICAgICAgICAgICBzZXRJc29sYXRlZFRyZWVGb2N1c2VkT2JqZWN0KG9iamVjdC5nZXQo
KSk7CiAgICAgICAgIH0KICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShvbGRWYWx1ZSk7CkBA
IC0yMTc4LDEwICsyMTc4LDEwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVz
Y2VuZGFudENoYW5nZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9tU3RyCiAgICAgfQogCiAg
ICAgLy8gSGFuZGxlIGFjdGl2ZS1kZXNjZW5kYW50IGNoYW5nZXMgd2hlbiB0aGUgdGFyZ2V0IGFs
bG93cyBmb3IgaXQsIG9yIHRoZSBjb250cm9sbGVkIG9iamVjdCBhbGxvd3MgZm9yIGl0LgotICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHRhcmdldCA9IG51bGxwdHI7CisgICAgUmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+IHRhcmdldCB7IG51bGxwdHIgfTsKICAgICBpZiAob2JqZWN0LT5zaG91
bGRGb2N1c0FjdGl2ZURlc2NlbmRhbnQoKSkgewogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUUpCi0gICAgICAgIHNldElzb2xhdGVkVHJlZUZvY3VzZWRPYmplY3QoYWN0aXZl
RGVzY2VuZGFudCk7CisgICAgICAgIHNldElzb2xhdGVkVHJlZUZvY3VzZWRPYmplY3QoYWN0aXZl
RGVzY2VuZGFudC5nZXQoKSk7CiAjZW5kaWYKICAgICAgICAgdGFyZ2V0ID0gb2JqZWN0OwogICAg
IH0gZWxzZSBpZiAob2JqZWN0LT5pc0NvbWJvQm94KCkpIHsKQEAgLTIyMDYsMTcgKzIyMDYsMTcg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50Q2hhbmdlKEVsZW1l
bnQmIGVsZW1lbnQsIGNvbnN0IEF0b21TdHIKICAgICBpZiAodGFyZ2V0KSB7CiAjaWYgRU5BQkxF
KEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKICAgICAgICAgaWYgKHRhcmdldCAhPSBvYmpl
Y3QpCi0gICAgICAgICAgICB1cGRhdGVJc29sYXRlZFRyZWUodGFyZ2V0LCBBWE5vdGlmaWNhdGlv
bjo6QVhBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCk7CisgICAgICAgICAgICB1cGRhdGVJc29sYXRl
ZFRyZWUodGFyZ2V0LmdldCgpLCBBWE5vdGlmaWNhdGlvbjo6QVhBY3RpdmVEZXNjZW5kYW50Q2hh
bmdlZCk7CiAjZW5kaWYKIAotICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24odGFyZ2V0
LCBBWE5vdGlmaWNhdGlvbjo6QVhBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCk7CisgICAgICAgIHBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbih0YXJnZXQuZ2V0KCksIEFYTm90aWZpY2F0aW9uOjpBWEFj
dGl2ZURlc2NlbmRhbnRDaGFuZ2VkKTsKIAogICAgICAgICAvLyBUYWJsZSBjZWxsIGFjdGl2ZSBk
ZXNjZW5kYW50IGNoYW5nZXMgc2hvdWxkIHRyaWdnZXIgc2VsZWN0ZWQgY2VsbCBjaGFuZ2VzLgog
ICAgICAgICBpZiAodGFyZ2V0LT5pc1RhYmxlKCkgJiYgYWN0aXZlRGVzY2VuZGFudC0+aXNFeHBv
c2VkVGFibGVDZWxsKCkpIHsKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
KQotICAgICAgICAgICAgdXBkYXRlSXNvbGF0ZWRUcmVlKHRhcmdldCwgQVhOb3RpZmljYXRpb246
OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQpOworICAgICAgICAgICAgdXBkYXRlSXNvbGF0ZWRUcmVl
KHRhcmdldC5nZXQoKSwgQVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQpOwog
I2VuZGlmCi0gICAgICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24odGFyZ2V0LCBBWFNl
bGVjdGVkQ2VsbHNDaGFuZ2VkKTsKKyAgICAgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bih0YXJnZXQuZ2V0KCksIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQpOwogICAgICAgICB9CiAgICAg
fQogfQpAQCAtMjI4Niw3ICsyMjg2LDggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpkZWZlckF0dHJp
YnV0ZUNoYW5nZUlmTmVlZGVkKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmkKICAgICAg
ICAgQVhMT0cobWFrZVN0cmluZygiRGVmZXJyaW5nIGhhbmRsaW5nIG9mIGF0dHJpYnV0ZSAiLCBh
dHRyTmFtZS5sb2NhbE5hbWUoKS5zdHJpbmcoKSwgIiBmb3IgZWxlbWVudCAiLCBlbGVtZW50LT5k
ZWJ1Z0Rlc2NyaXB0aW9uKCkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBoYW5kbGVB
dHRyaWJ1dGVDaGFuZ2UoZWxlbWVudCwgYXR0ck5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZSk7Cisg
ICAgUmVmUHRyIHByb3RlY3RlZEVsZW1lbnQgeyBlbGVtZW50IH07CisgICAgaGFuZGxlQXR0cmli
dXRlQ2hhbmdlKHByb3RlY3RlZEVsZW1lbnQuZ2V0KCksIGF0dHJOYW1lLCBvbGRWYWx1ZSwgbmV3
VmFsdWUpOwogfQogCiBib29sIEFYT2JqZWN0Q2FjaGU6OnNob3VsZFByb2Nlc3NBdHRyaWJ1dGVD
aGFuZ2UoRWxlbWVudCogZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>