<?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>132464</bug_id>
          
          <creation_ts>2014-05-01 23:27:04 -0700</creation_ts>
          <short_desc>Reduce calls to CFURLCacheCopySharedURLCache</short_desc>
          <delta_ts>2014-05-04 17:43:44 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pratik Solanki">psolanki</reporter>
          <assigned_to name="Pratik Solanki">psolanki</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>kling</cc>
    
    <cc>psolanki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1005989</commentid>
    <comment_count>0</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-05-01 23:27:04 -0700</bug_when>
    <thetext>Reduce calls to CFURLCacheCopySharedURLCache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005990</commentid>
    <comment_count>1</comment_count>
      <attachid>230655</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-05-01 23:31:28 -0700</bug_when>
    <thetext>Created attachment 230655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005991</commentid>
    <comment_count>2</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-05-01 23:33:50 -0700</bug_when>
    <thetext>My only concern here would be if someone was calling CFURLCacheSetSharedCache or [NSURLCache setSharedURLCache] after we cache the url ref in the static. I could&apos;t find any such callers though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005999</commentid>
    <comment_count>3</comment_count>
      <attachid>230655</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-02 00:51:43 -0700</bug_when>
    <thetext>Comment on attachment 230655
Patch

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

&gt; Source/WebKit2/NetworkProcess/mac/NetworkResourceLoaderMac.mm:89
&gt; +    static RetainPtr&lt;CFURLCacheRef&gt; cache = adoptCF(CFURLCacheCopySharedURLCache());

This can&apos;t be a RetainPtr, because we don&apos;t want exit time destructors. A plain pointer would be appropriate.

An ASSERT in debug builds would ensure that we don&apos;t break this optimization, although that may be overkill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006057</commentid>
    <comment_count>4</comment_count>
      <attachid>230675</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-05-02 10:57:49 -0700</bug_when>
    <thetext>Created attachment 230675
Patch with assert and raw pointer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006061</commentid>
    <comment_count>5</comment_count>
      <attachid>230675</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-02 11:30:10 -0700</bug_when>
    <thetext>Comment on attachment 230675
Patch with assert and raw pointer

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

&gt; Source/WebKit2/NetworkProcess/mac/NetworkResourceLoaderMac.mm:89
&gt; +    static CFURLCacheRef cache = CFURLCacheCopySharedURLCache();

I&apos;d also add ASSERT(isMainThread()) here, as this initialization is not thread safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006417</commentid>
    <comment_count>6</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-05-03 17:03:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/16806694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006419</commentid>
    <comment_count>7</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-05-03 17:15:25 -0700</bug_when>
    <thetext>Committed r168231: &lt;http://trac.webkit.org/changeset/168231&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006458</commentid>
    <comment_count>8</comment_count>
      <attachid>230675</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-03 20:28:27 -0700</bug_when>
    <thetext>Comment on attachment 230675
Patch with assert and raw pointer

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

&gt; Source/WebKit2/NetworkProcess/mac/NetworkResourceLoaderMac.mm:93
&gt; +#if !ASSERT_DISABLED
&gt; +    RetainPtr&lt;CFURLCacheRef&gt; currentCache = adoptCF(CFURLCacheCopySharedURLCache());
&gt; +    ASSERT(cache == currentCache.get());
&gt; +#endif

To avoid this ugly if, just get rid of the local variable:

    ASSERT(currentCache == adoptCF(CFURLCacheCopySharedURLCache()));

Also no need for the call to get() when doing ==.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006518</commentid>
    <comment_count>9</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-05-04 17:43:44 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 230675 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=230675&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/mac/NetworkResourceLoaderMac.mm:93
&gt; &gt; +#if !ASSERT_DISABLED
&gt; &gt; +    RetainPtr&lt;CFURLCacheRef&gt; currentCache = adoptCF(CFURLCacheCopySharedURLCache());
&gt; &gt; +    ASSERT(cache == currentCache.get());
&gt; &gt; +#endif
&gt; 
&gt; To avoid this ugly if, just get rid of the local variable:
&gt; 
&gt;     ASSERT(currentCache == adoptCF(CFURLCacheCopySharedURLCache()));
&gt; 
&gt; Also no need for the call to get() when doing ==.

Yes, this looks much better. I landed this in &lt;http://trac.webkit.org/changeset/168250&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230655</attachid>
            <date>2014-05-01 23:31:28 -0700</date>
            <delta_ts>2014-05-02 10:57:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132464-20140501233107.patch</filename>
            <type>text/plain</type>
            <size>3843</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTM2YWNmMWEwNTNhY2Rl
NjkyNTc2MDI3ZjM4ZjE1MjE2MTIwY2E4Yi4uZWU3ZWE2NDQxM2RkNzNiNWY4YmU5ZjFkNzkzNmJi
ZDg3YjhmNDcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTA1LTAxICBQcmF0
aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1Y2UgY2FsbHMg
dG8gQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZSBncmFi
cyBhIG11dGV4IGFuZCBjYW4gc29tZXRpbWVzIGJsb2NrLiBBdm9pZCB0aGF0IGJ5IHN0YXNoaW5n
CisgICAgICAgIHRoZSBjYWNoZSByZWZlcmVuY2UgaW4gYSBzdGF0aWMuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDogQ29hbGVzY2UgaWZkZWYnZCBj
b2RlLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJN
YWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dHJ5R2V0U2hh
cmVhYmxlSGFuZGxlRnJvbVNoYXJlZEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyk6IFVzZSBtb3JlIGNvcnJlY3Qg
aWZkZWYgZm9yCisgICAgICAgIEZvdW5kYXRpb24gYmFzZWQgY2FsbGJhY2suCisKIDIwMTQtMDUt
MDEgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChXZWJLaXQyKSBOZWVkIHRvIHN1cHBvcnQgTGVhcm4gYnV0dG9uLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRl
eCA0YzBjYTdhNGM1YTkwYjdlZTAwZGUxMDc3MjhmNmRlNTJmOTNjMjY3Li4yYzE5ODM5NzE0MzA1
MTljNDMwNTE0MDBlNzNhYzdmNGU1ZmZhZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMTI0LDYgKzEyNCw3
IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQogICAgIHN0YXRpYyB2b2lkIHRy
eUdldFNoYXJlYWJsZUhhbmRsZUZyb21DRlVSTENhY2hlZFJlc3BvbnNlKFNoYXJlYWJsZVJlc291
cmNlOjpIYW5kbGUmLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKKyAgICBzdGF0aWMgdm9pZCB0
cnlHZXRTaGFyZWFibGVIYW5kbGVGcm9tU2hhcmVkQnVmZmVyKFNoYXJlYWJsZVJlc291cmNlOjpI
YW5kbGUmLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIqKTsKICNlbmRpZgogCiAgICAgYm9vbCBpc1N5
bmNocm9ub3VzKCkgY29uc3Q7CkBAIC0xNDEsMTYgKzE0MiwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRI
X0NBTExCQUNLKQogICAgIHZvaWQgY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlKGJvb2wpOwogI2VuZGlmCiAgICAgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVxdWVz
dChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QpOwogCi0jaWYgUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwOTApCi0gICAgc3RhdGljIHZvaWQgdHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJv
bVNoYXJlZEJ1ZmZlcihTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiwgV2ViQ29yZTo6U2hhcmVk
QnVmZmVyKik7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIo
Y29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmLCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyosIFBhc3NSZWZQdHI8TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHk+KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxv
YWRlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXJNYWMubW0KaW5kZXggYTc2ODk1MTk5MDc4ZjY5YmZkNzUzZGY2ZGFiYjVmMjFl
YTBjZTk0Yy4uYzljNGM2Y2ViMjhlNGFjOTc2MTlkZTk1ZWNhZTZjYWNmMGM3ZWNlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxv
YWRlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29y
a1Jlc291cmNlTG9hZGVyTWFjLm1tCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjp0cnlHZXRTaGFyZWFibGVIYW5kbGVGcm9tQ0ZVUkxDYWNoZWRSZXNwb25zZShT
aGFyZWFiCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp0cnlHZXRTaGFyZWFibGVIYW5k
bGVGcm9tU2hhcmVkQnVmZmVyKFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSwgU2hh
cmVkQnVmZmVyKiBidWZmZXIpCiB7Ci0gICAgUmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNhY2hl
ID0gYWRvcHRDRihDRlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCkpOworICAgIHN0YXRpYyBS
ZXRhaW5QdHI8Q0ZVUkxDYWNoZVJlZj4gY2FjaGUgPSBhZG9wdENGKENGVVJMQ2FjaGVDb3B5U2hh
cmVkVVJMQ2FjaGUoKSk7CiAgICAgaWYgKCFjYWNoZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0x
MTMsOSArMTEzLDkgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3Bv
bnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgQ0ZDYWMKIAogICAgIG1faGFuZGxlLT5j
b250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKGNmUmVzcG9uc2UpOwogfQotI2VuZGlmCiAKLSNpZiAh
UExBVEZPUk0oSU9TKQorI2Vsc2UKKwogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxD
YWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgTlNDYWNoZWRVUkxSZXNw
b25zZSAqbnNSZXNwb25zZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgaGFuZGxlID09
IG1faGFuZGxlKTsKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBOU0NhYwog
CiAgICAgbV9oYW5kbGUtPmNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2UobnNSZXNwb25zZSk7CiB9
Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKKyNlbmRpZiAvLyAhVVNFKENGTkVUV09SSykKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230675</attachid>
            <date>2014-05-02 10:57:49 -0700</date>
            <delta_ts>2014-05-03 20:28:27 -0700</delta_ts>
            <desc>Patch with assert and raw pointer</desc>
            <filename>bug-132464-20140502105726.patch</filename>
            <type>text/plain</type>
            <size>4291</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTM2YWNmMWEwNTNhY2Rl
NjkyNTc2MDI3ZjM4ZjE1MjE2MTIwY2E4Yi4uZWU3ZWE2NDQxM2RkNzNiNWY4YmU5ZjFkNzkzNmJi
ZDg3YjhmNDcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTA1LTAxICBQcmF0
aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1Y2UgY2FsbHMg
dG8gQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZSBncmFi
cyBhIG11dGV4IGFuZCBjYW4gc29tZXRpbWVzIGJsb2NrLiBBdm9pZCB0aGF0IGJ5IHN0YXNoaW5n
CisgICAgICAgIHRoZSBjYWNoZSByZWZlcmVuY2UgaW4gYSBzdGF0aWMuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDogQ29hbGVzY2UgaWZkZWYnZCBj
b2RlLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJN
YWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dHJ5R2V0U2hh
cmVhYmxlSGFuZGxlRnJvbVNoYXJlZEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyk6IFVzZSBtb3JlIGNvcnJlY3Qg
aWZkZWYgZm9yCisgICAgICAgIEZvdW5kYXRpb24gYmFzZWQgY2FsbGJhY2suCisKIDIwMTQtMDUt
MDEgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChXZWJLaXQyKSBOZWVkIHRvIHN1cHBvcnQgTGVhcm4gYnV0dG9uLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRl
eCA0YzBjYTdhNGM1YTkwYjdlZTAwZGUxMDc3MjhmNmRlNTJmOTNjMjY3Li4yYzE5ODM5NzE0MzA1
MTljNDMwNTE0MDBlNzNhYzdmNGU1ZmZhZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMTI0LDYgKzEyNCw3
IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQogICAgIHN0YXRpYyB2b2lkIHRy
eUdldFNoYXJlYWJsZUhhbmRsZUZyb21DRlVSTENhY2hlZFJlc3BvbnNlKFNoYXJlYWJsZVJlc291
cmNlOjpIYW5kbGUmLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKKyAgICBzdGF0aWMgdm9pZCB0
cnlHZXRTaGFyZWFibGVIYW5kbGVGcm9tU2hhcmVkQnVmZmVyKFNoYXJlYWJsZVJlc291cmNlOjpI
YW5kbGUmLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIqKTsKICNlbmRpZgogCiAgICAgYm9vbCBpc1N5
bmNocm9ub3VzKCkgY29uc3Q7CkBAIC0xNDEsMTYgKzE0MiwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRI
X0NBTExCQUNLKQogICAgIHZvaWQgY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlKGJvb2wpOwogI2VuZGlmCiAgICAgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVxdWVz
dChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QpOwogCi0jaWYgUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwOTApCi0gICAgc3RhdGljIHZvaWQgdHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJv
bVNoYXJlZEJ1ZmZlcihTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiwgV2ViQ29yZTo6U2hhcmVk
QnVmZmVyKik7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIo
Y29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmLCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyosIFBhc3NSZWZQdHI8TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHk+KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxv
YWRlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXJNYWMubW0KaW5kZXggYTc2ODk1MTk5MDc4ZjY5YmZkNzUzZGY2ZGFiYjVmMjFl
YTBjZTk0Yy4uM2ExZThjMjc1ZWU1Y2EwODk4MDMzZWZjZWY2NTkyYjE5ZTBkZTg0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxv
YWRlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29y
a1Jlc291cmNlTG9hZGVyTWFjLm1tCkBAIC04NiwxMiArODYsMTcgQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnRyeUdldFNoYXJlYWJsZUhhbmRsZUZyb21DRlVSTENhY2hlZFJlc3BvbnNl
KFNoYXJlYWIKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnRyeUdldFNoYXJlYWJsZUhh
bmRsZUZyb21TaGFyZWRCdWZmZXIoU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlLCBT
aGFyZWRCdWZmZXIqIGJ1ZmZlcikKIHsKLSAgICBSZXRhaW5QdHI8Q0ZVUkxDYWNoZVJlZj4gY2Fj
aGUgPSBhZG9wdENGKENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKSk7CisgICAgc3RhdGlj
IENGVVJMQ2FjaGVSZWYgY2FjaGUgPSBDRlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCk7Cisj
aWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIFJldGFpblB0cjxDRlVSTENhY2hlUmVmPiBjdXJyZW50
Q2FjaGUgPSBhZG9wdENGKENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKSk7CisgICAgQVNT
RVJUKGNhY2hlID09IGN1cnJlbnRDYWNoZS5nZXQoKSk7CisjZW5kaWYKKwogICAgIGlmICghY2Fj
aGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGEgPSBi
dWZmZXItPmNyZWF0ZUNGRGF0YSgpOwotICAgIGlmIChfQ0ZVUkxDYWNoZUlzUmVzcG9uc2VEYXRh
TWVtTWFwcGVkKGNhY2hlLmdldCgpLCBkYXRhLmdldCgpKSA9PSBrQ0ZCb29sZWFuRmFsc2UpCisg
ICAgaWYgKF9DRlVSTENhY2hlSXNSZXNwb25zZURhdGFNZW1NYXBwZWQoY2FjaGUsIGRhdGEuZ2V0
KCkpID09IGtDRkJvb2xlYW5GYWxzZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdHJ5R2V0U2hh
cmVhYmxlSGFuZGxlRnJvbUNGRGF0YShoYW5kbGUsIGRhdGEuZ2V0KCkpOwpAQCAtMTEzLDkgKzEx
OCw5IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZUFzeW5j
KFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIENGQ2FjCiAKICAgICBtX2hhbmRsZS0+Y29udGludWVX
aWxsQ2FjaGVSZXNwb25zZShjZlJlc3BvbnNlKTsKIH0KLSNlbmRpZgogCi0jaWYgIVBMQVRGT1JN
KElPUykKKyNlbHNlCisKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNw
b25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKm5z
UmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChoYW5kbGUsIGhhbmRsZSA9PSBtX2hhbmRs
ZSk7CkBAIC0xMjcsNyArMTMyLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxD
YWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgTlNDYWMKIAogICAgIG1f
aGFuZGxlLT5jb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKG5zUmVzcG9uc2UpOwogfQotI2VuZGlm
IC8vICFQTEFURk9STShJT1MpCisjZW5kaWYgLy8gIVVTRShDRk5FVFdPUkspCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCg==
</data>
<flag name="review"
          id="255058"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>