<?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>158516</bug_id>
          
          <creation_ts>2016-06-07 23:36:23 -0700</creation_ts>
          <short_desc>Remove removeDirect</short_desc>
          <delta_ts>2016-06-08 14:48:14 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1200355</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-06-07 23:36:23 -0700</bug_when>
    <thetext>removeDirect is typically used as a subroutine of deleteProperty, but is also available to call directly. Having this functionality factored out to a separate routine is a bad idea on a couple of fronts:

- for the main use within deleteProperty there is redundancy (presence of the property was being checked twice) and inconsistency (the two functions returned different results in the case of a nonexistent property; the result from removeDirect was never observed).

- all uses of removeDirect are in practical terms incorrect. removeDirect had the advantage of ignoring the configurable (DontDelete) attributes, but this is achievable using the DeletePropertyMode setting - and the disadvantage of failing delete static table properties. Last uses were one that was removed in bug #158295 (where failure to delete static properties was a problem), and as addressed in this patch removeDirect is being used to implement runtime enabled features. This only works because we currently force reification of all properties on the DOM prototype objects, so in effect there are no static properties. In order to make the code robust such that runtime enabled features would still work even if we were not reifying static properties (a change we may want to make) we should be calling deleteProperty in this case too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200358</commentid>
    <comment_count>1</comment_count>
      <attachid>280779</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-06-07 23:42:43 -0700</bug_when>
    <thetext>Created attachment 280779
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200399</commentid>
    <comment_count>2</comment_count>
      <attachid>280779</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-06-08 02:54:38 -0700</bug_when>
    <thetext>Comment on attachment 280779
Fix

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

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:1506
&gt; +                // Assert to guard assumption in above comment; either there is no property in property storage,

This comment seems redundant given the comment above &amp; the assertion. Remove?

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:1518
&gt; +    // Check if the property exists.
&gt; +    if (isValidOffset(structure-&gt;get(vm, propertyName, attributes))) {

I think we usually prefer allocating a local variable with a descriptive name like:
bool propertyExists = isValidOffset(~)
instead of adding comment like this at least in WebCore.

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:1519
&gt; +        // Return failure if the property is non-configurable (DontDelete).

This comment seems redundant.

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:1523
&gt; +        // Remove the property from the structure.

Ditto.

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:1531
&gt; +        // If there is a slot in property storage for this property, clear it for the benefit of GC.
&gt; +        if (offset != invalidOffset)

I think this is another instance where a local variable with a descriptive name would help. e.g.
bool shouldClearPropertySlotForGC = offset != invalidOffset;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200607</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-06-08 14:48:14 -0700</bug_when>
    <thetext>Committed revision 201834.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280779</attachid>
            <date>2016-06-07 23:42:43 -0700</date>
            <delta_ts>2016-06-08 02:54:38 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>158516.1.patch</filename>
            <type>text/plain</type>
            <size>11506</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxNzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE2LTA2LTA3ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgcmVtb3ZlRGlyZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg1MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICByZW1vdmVEaXJlY3QgaXMgdHlwaWNhbGx5IHVzZWQgYXMg
YSBzdWJyb3V0aW5lIG9mIGRlbGV0ZVByb3BlcnR5LCBidXQgaXMgYWxzbyBhdmFpbGFibGUgdG8K
KyAgICAgICAgY2FsbCBkaXJlY3RseS4gSGF2aW5nIHRoaXMgZnVuY3Rpb25hbGl0eSBmYWN0b3Jl
ZCBvdXQgdG8gYSBzZXBhcmF0ZSByb3V0aW5lIGlzIGEgYmFkIGlkZWEKKyAgICAgICAgb24gYSBj
b3VwbGUgb2YgZnJvbnRzOgorCisgICAgICAgIC0gZm9yIHRoZSBtYWluIHVzZSB3aXRoaW4gZGVs
ZXRlUHJvcGVydHkgdGhlcmUgaXMgcmVkdW5kYW5jeSAocHJlc2VuY2Ugb2YgdGhlIHByb3BlcnR5
CisgICAgICAgICAgd2FzIGJlaW5nIGNoZWNrZWQgdHdpY2UpIGFuZCBpbmNvbnNpc3RlbmN5ICh0
aGUgdHdvIGZ1bmN0aW9ucyByZXR1cm5lZCBkaWZmZXJlbnQgcmVzdWx0cworICAgICAgICAgIGlu
IHRoZSBjYXNlIG9mIGEgbm9uZXhpc3RlbnQgcHJvcGVydHk7IHRoZSByZXN1bHQgZnJvbSByZW1v
dmVEaXJlY3Qgd2FzIG5ldmVyIG9ic2VydmVkKS4KKworICAgICAgICAtIGFsbCB1c2VzIG9mIHJl
bW92ZURpcmVjdCBhcmUgaW4gcHJhY3RpY2FsIHRlcm1zIGluY29ycmVjdC4gcmVtb3ZlRGlyZWN0
IGhhZCB0aGUKKyAgICAgICAgICBhZHZhbnRhZ2Ugb2YgaWdub3JpbmcgdGhlIGNvbmZpZ3VyYWJs
ZSAoRG9udERlbGV0ZSkgYXR0cmlidXRlcywgYnV0IHRoaXMgaXMgYWNoaWV2YWJsZQorICAgICAg
ICAgIHVzaW5nIHRoZSBEZWxldGVQcm9wZXJ0eU1vZGUgc2V0dGluZyAtIGFuZCB0aGUgZGlzYWR2
YW50YWdlIG9mIGZhaWxpbmcgZGVsZXRlIHN0YXRpYworICAgICAgICAgIHRhYmxlIHByb3BlcnRp
ZXMuIExhc3QgdXNlcyB3ZXJlIG9uZSB0aGF0IHdhcyByZW1vdmVkIGluIGJ1ZyAjMTU4Mjk1ICh3
aGVyZSBmYWlsdXJlIHRvCisgICAgICAgICAgZGVsZXRlIHN0YXRpYyBwcm9wZXJ0aWVzIHdhcyBh
IHByb2JsZW0pLCBhbmQgYXMgYWRkcmVzc2VkIGluIHRoaXMgcGF0Y2ggcmVtb3ZlRGlyZWN0IGlz
CisgICAgICAgICAgYmVpbmcgdXNlZCB0byBpbXBsZW1lbnQgcnVudGltZSBlbmFibGVkIGZlYXR1
cmVzLiBUaGlzIG9ubHkgd29ya3MgYmVjYXVzZSB3ZSBjdXJyZW50bHkKKyAgICAgICAgICBmb3Jj
ZSByZWlmaWNhdGlvbiBvZiBhbGwgcHJvcGVydGllcyBvbiB0aGUgRE9NIHByb3RvdHlwZSBvYmpl
Y3RzLCBzbyBpbiBlZmZlY3QgdGhlcmUgYXJlCisgICAgICAgICAgbm8gc3RhdGljIHByb3BlcnRp
ZXMuIEluIG9yZGVyIHRvIG1ha2UgdGhlIGNvZGUgcm9idXN0IHN1Y2ggdGhhdCBydW50aW1lIGVu
YWJsZWQKKyAgICAgICAgICBmZWF0dXJlcyB3b3VsZCBzdGlsbCB3b3JrIGV2ZW4gaWYgd2Ugd2Vy
ZSBub3QgcmVpZnlpbmcgc3RhdGljIHByb3BlcnRpZXMgKGEgY2hhbmdlIHdlCisgICAgICAgICAg
bWF5IHdhbnQgdG8gbWFrZSkgd2Ugc2hvdWxkIGJlIGNhbGxpbmcgZGVsZXRlUHJvcGVydHkgaW4g
dGhpcyBjYXNlIHRvby4KKworICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAgICAgLSBpbmNvcnBv
cmF0ZWQgcmVtb3ZlRGlyZWN0IGZ1bmN0aW9uYWxpdHksIGFkZGVkIGNvbW1lbnRzICYgQVNTRVJU
LgorICAgICAgICAoSlNDOjpKU09iamVjdDo6cmVtb3ZlRGlyZWN0KTogRGVsZXRlZC4KKyAgICAg
ICAgICAgIC0gcmVtb3ZlZC4KKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAg
ICAgICAtIHJlbW92ZWQgcmVtb3ZlRGlyZWN0LgorCiAyMDE2LTA2LTA3ICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIERvIG5vdCBhbGxvY2F0
ZSB1bm5lY2Vzc2FyeSBVVEYtOCBzdHJpbmcgZm9yIGVuY29kZVhYWCBmdW5jdGlvbnMKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlzaW9uIDIw
MTc0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQ5NSwxOSArMTQ5NSw0MSBAQCBib29sIEpTT2JqZWN0OjpkZWxldGVQ
cm9wZXJ0eShKU0NlbGwqIGNlCiAgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBh
cnNlSW5kZXgocHJvcGVydHlOYW1lKSkKICAgICAgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1ldGhv
ZFRhYmxlKHZtKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMsIGluZGV4
LnZhbHVlKCkpOwogCisgICAgdW5zaWduZWQgYXR0cmlidXRlczsKKwogICAgIGlmICghdGhpc09i
amVjdC0+c3RhdGljRnVuY3Rpb25zUmVpZmllZCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBlbnRy
eSA9IHRoaXNPYmplY3QtPmZpbmRQcm9wZXJ0eUhhc2hFbnRyeShwcm9wZXJ0eU5hbWUpKSB7Ci0g
ICAgICAgICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIERvbnREZWxldGUgJiYgdm0uZGVs
ZXRlUHJvcGVydHlNb2RlKCkgIT0gVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmln
dXJhYmxlKQorICAgICAgICAgICAgLy8gSWYgdGhlIHN0YXRpYyB0YWJsZSBjb250YWlucyBhIG5v
bi1jb25maWd1cmFibGUgKERvbnREZWxldGUpIHByb3BlcnR5IHRoZW4gd2UgY2FuIHJldHVybiBl
YXJseTsKKyAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgcHJvcGVydHkgaW4gdGhlIHN0b3Jh
Z2UgYXJyYXkgaXQgdG9vIG11c3QgYmUgbm9uLWNvbmZpZ3VyYWJsZSAodGhlIGxhbmd1YWdlIGRv
ZXMKKyAgICAgICAgICAgIC8vIG5vdCBhbGxvdyByZXBhY2VtZW50IG9mIGEgbm9uLWNvbmZpZ3Vy
YWJsZSBwcm9wZXJ0eSB3aXRoIGEgY29uZmlndXJhYmxlIG9uZSkuCisgICAgICAgICAgICBpZiAo
ZW50cnktPmF0dHJpYnV0ZXMoKSAmIERvbnREZWxldGUgJiYgdm0uZGVsZXRlUHJvcGVydHlNb2Rl
KCkgIT0gVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKSB7CisgICAg
ICAgICAgICAgICAgLy8gQXNzZXJ0IHRvIGd1YXJkIGFzc3VtcHRpb24gaW4gYWJvdmUgY29tbWVu
dDsgZWl0aGVyIHRoZXJlIGlzIG5vIHByb3BlcnR5IGluIHByb3BlcnR5IHN0b3JhZ2UsCisgICAg
ICAgICAgICAgICAgLy8gb3IgaXQgdG9vIGlzIG5vbi1jb25maWd1cmFibGUuCisgICAgICAgICAg
ICAgICAgQVNTRVJUKCFpc1ZhbGlkT2Zmc2V0KHRoaXNPYmplY3QtPnN0cnVjdHVyZSh2bSktPmdl
dCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSkgfHwgYXR0cmlidXRlcyAmIERvbnREZWxl
dGUpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHRoaXNPYmplY3QtPnJlaWZ5QWxsU3RhdGljUHJvcGVydGllcyhleGVjKTsKICAgICAg
ICAgfQogICAgIH0KIAotICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXM7Ci0gICAgaWYgKGlzVmFsaWRP
ZmZzZXQodGhpc09iamVjdC0+c3RydWN0dXJlKHZtKS0+Z2V0KHZtLCBwcm9wZXJ0eU5hbWUsIGF0
dHJpYnV0ZXMpKSkgeworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gdGhpc09iamVjdC0+c3Ry
dWN0dXJlKHZtKTsKKworICAgIC8vIENoZWNrIGlmIHRoZSBwcm9wZXJ0eSBleGlzdHMuCisgICAg
aWYgKGlzVmFsaWRPZmZzZXQoc3RydWN0dXJlLT5nZXQodm0sIHByb3BlcnR5TmFtZSwgYXR0cmli
dXRlcykpKSB7CisgICAgICAgIC8vIFJldHVybiBmYWlsdXJlIGlmIHRoZSBwcm9wZXJ0eSBpcyBu
b24tY29uZmlndXJhYmxlIChEb250RGVsZXRlKS4KICAgICAgICAgaWYgKGF0dHJpYnV0ZXMgJiBE
b250RGVsZXRlICYmIHZtLmRlbGV0ZVByb3BlcnR5TW9kZSgpICE9IFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgdGhpc09iamVjdC0+cmVtb3ZlRGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUpOworCisgICAg
ICAgIC8vIFJlbW92ZSB0aGUgcHJvcGVydHkgZnJvbSB0aGUgc3RydWN0dXJlLgorICAgICAgICBQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQ7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPmlzVW5jYWNoZWFi
bGVEaWN0aW9uYXJ5KCkpCisgICAgICAgICAgICBvZmZzZXQgPSBzdHJ1Y3R1cmUtPnJlbW92ZVBy
b3BlcnR5V2l0aG91dFRyYW5zaXRpb24odm0sIHByb3BlcnR5TmFtZSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRoaXNPYmplY3QtPnNldFN0cnVjdHVyZSh2bSwgU3RydWN0dXJlOjpyZW1v
dmVQcm9wZXJ0eVRyYW5zaXRpb24odm0sIHN0cnVjdHVyZSwgcHJvcGVydHlOYW1lLCBvZmZzZXQp
KTsKKworICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHNsb3QgaW4gcHJvcGVydHkgc3RvcmFnZSBm
b3IgdGhpcyBwcm9wZXJ0eSwgY2xlYXIgaXQgZm9yIHRoZSBiZW5lZml0IG9mIEdDLgorICAgICAg
ICBpZiAob2Zmc2V0ICE9IGludmFsaWRPZmZzZXQpCisgICAgICAgICAgICB0aGlzT2JqZWN0LT5w
dXREaXJlY3RVbmRlZmluZWQob2Zmc2V0KTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTE5NzcsMjggKzE5OTksNiBAQCB2b2lkIEpTT2JqZWN0OjpyZWlmeUFsbFN0YXRpY1Byb3BlcnRp
ZXMoCiAgICAgc3RydWN0dXJlKHZtKS0+c2V0U3RhdGljRnVuY3Rpb25zUmVpZmllZCh0cnVlKTsK
IH0KIAotYm9vbCBKU09iamVjdDo6cmVtb3ZlRGlyZWN0KFZNJiB2bSwgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSkKLXsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVy
ZSh2bSk7Ci0gICAgaWYgKCFpc1ZhbGlkT2Zmc2V0KHN0cnVjdHVyZS0+Z2V0KHZtLCBwcm9wZXJ0
eU5hbWUpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgUHJvcGVydHlPZmZzZXQgb2Zm
c2V0OwotICAgIGlmIChzdHJ1Y3R1cmUtPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkpIHsKLSAg
ICAgICAgb2Zmc2V0ID0gc3RydWN0dXJlLT5yZW1vdmVQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9u
KHZtLCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBpZiAob2Zmc2V0ID09IGludmFsaWRPZmZzZXQp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHB1dERpcmVjdFVuZGVmaW5lZChv
ZmZzZXQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzZXRTdHJ1Y3R1cmUo
dm0sIFN0cnVjdHVyZTo6cmVtb3ZlUHJvcGVydHlUcmFuc2l0aW9uKHZtLCBzdHJ1Y3R1cmUsIHBy
b3BlcnR5TmFtZSwgb2Zmc2V0KSk7Ci0gICAgaWYgKG9mZnNldCA9PSBpbnZhbGlkT2Zmc2V0KQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcHV0RGlyZWN0VW5kZWZpbmVkKG9mZnNldCk7Ci0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KIE5FVkVSX0lOTElORSB2b2lkIEpTT2JqZWN0OjpmaWxsR2V0
dGVyUHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYgc2xvdCwgSlNWYWx1ZSBnZXR0ZXJTZXR0ZXIs
IHVuc2lnbmVkIGF0dHJpYnV0ZXMsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICBpZiAo
c3RydWN0dXJlKCktPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkpIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2aXNpb24gMjAxNzQzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAt
NjIyLDcgKzYyMiw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdHJhbnNpdGlvblRvKFZNJiwgU3Ry
dWN0dXJlKik7CiAKLSAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHJlbW92ZURpcmVjdChWTSYs
IFByb3BlcnR5TmFtZSk7IC8vIFJldHVybiB0cnVlIGlmIGFueXRoaW5nIGlzIHJlbW92ZWQuCiAg
ICAgYm9vbCBoYXNDdXN0b21Qcm9wZXJ0aWVzKCkgeyByZXR1cm4gc3RydWN0dXJlKCktPmRpZFRy
YW5zaXRpb24oKTsgfQogICAgIGJvb2wgaGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcygpIHsgcmV0
dXJuIHN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCk7IH0KICAgICBib29s
IGhhc0N1c3RvbUdldHRlclNldHRlclByb3BlcnRpZXMoKSB7IHJldHVybiBzdHJ1Y3R1cmUoKS0+
aGFzQ3VzdG9tR2V0dGVyU2V0dGVyUHJvcGVydGllcygpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyMDE3NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwzNiBAQAorMjAxNi0wNi0wNyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNs
b3VnaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHJlbW92ZURpcmVjdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NTE2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmVtb3ZlRGlyZWN0IGlzIHR5
cGljYWxseSB1c2VkIGFzIGEgc3Vicm91dGluZSBvZiBkZWxldGVQcm9wZXJ0eSwgYnV0IGlzIGFs
c28gYXZhaWxhYmxlIHRvCisgICAgICAgIGNhbGwgZGlyZWN0bHkuIEhhdmluZyB0aGlzIGZ1bmN0
aW9uYWxpdHkgZmFjdG9yZWQgb3V0IHRvIGEgc2VwYXJhdGUgcm91dGluZSBpcyBhIGJhZCBpZGVh
CisgICAgICAgIG9uIGEgY291cGxlIG9mIGZyb250czoKKworICAgICAgICAtIGZvciB0aGUgbWFp
biB1c2Ugd2l0aGluIGRlbGV0ZVByb3BlcnR5IHRoZXJlIGlzIHJlZHVuZGFuY3kgKHByZXNlbmNl
IG9mIHRoZSBwcm9wZXJ0eQorICAgICAgICAgIHdhcyBiZWluZyBjaGVja2VkIHR3aWNlKSBhbmQg
aW5jb25zaXN0ZW5jeSAodGhlIHR3byBmdW5jdGlvbnMgcmV0dXJuZWQgZGlmZmVyZW50IHJlc3Vs
dHMKKyAgICAgICAgICBpbiB0aGUgY2FzZSBvZiBhIG5vbmV4aXN0ZW50IHByb3BlcnR5OyB0aGUg
cmVzdWx0IGZyb20gcmVtb3ZlRGlyZWN0IHdhcyBuZXZlciBvYnNlcnZlZCkuCisKKyAgICAgICAg
LSBhbGwgdXNlcyBvZiByZW1vdmVEaXJlY3QgYXJlIGluIHByYWN0aWNhbCB0ZXJtcyBpbmNvcnJl
Y3QuIHJlbW92ZURpcmVjdCBoYWQgdGhlCisgICAgICAgICAgYWR2YW50YWdlIG9mIGlnbm9yaW5n
IHRoZSBjb25maWd1cmFibGUgKERvbnREZWxldGUpIGF0dHJpYnV0ZXMsIGJ1dCB0aGlzIGlzIGFj
aGlldmFibGUKKyAgICAgICAgICB1c2luZyB0aGUgRGVsZXRlUHJvcGVydHlNb2RlIHNldHRpbmcg
LSBhbmQgdGhlIGRpc2FkdmFudGFnZSBvZiBmYWlsaW5nIGRlbGV0ZSBzdGF0aWMKKyAgICAgICAg
ICB0YWJsZSBwcm9wZXJ0aWVzLiBMYXN0IHVzZXMgd2VyZSBvbmUgdGhhdCB3YXMgcmVtb3ZlZCBp
biBidWcgIzE1ODI5NSAod2hlcmUgZmFpbHVyZSB0bworICAgICAgICAgIGRlbGV0ZSBzdGF0aWMg
cHJvcGVydGllcyB3YXMgYSBwcm9ibGVtKSwgYW5kIGFzIGFkZHJlc3NlZCBpbiB0aGlzIHBhdGNo
IHJlbW92ZURpcmVjdCBpcworICAgICAgICAgIGJlaW5nIHVzZWQgdG8gaW1wbGVtZW50IHJ1bnRp
bWUgZW5hYmxlZCBmZWF0dXJlcy4gVGhpcyBvbmx5IHdvcmtzIGJlY2F1c2Ugd2UgY3VycmVudGx5
CisgICAgICAgICAgZm9yY2UgcmVpZmljYXRpb24gb2YgYWxsIHByb3BlcnRpZXMgb24gdGhlIERP
TSBwcm90b3R5cGUgb2JqZWN0cywgc28gaW4gZWZmZWN0IHRoZXJlIGFyZQorICAgICAgICAgIG5v
IHN0YXRpYyBwcm9wZXJ0aWVzLiBJbiBvcmRlciB0byBtYWtlIHRoZSBjb2RlIHJvYnVzdCBzdWNo
IHRoYXQgcnVudGltZSBlbmFibGVkCisgICAgICAgICAgZmVhdHVyZXMgd291bGQgc3RpbGwgd29y
ayBldmVuIGlmIHdlIHdlcmUgbm90IHJlaWZ5aW5nIHN0YXRpYyBwcm9wZXJ0aWVzIChhIGNoYW5n
ZSB3ZQorICAgICAgICAgIG1heSB3YW50IHRvIG1ha2UpIHdlIHNob3VsZCBiZSBjYWxsaW5nIGRl
bGV0ZVByb3BlcnR5IGluIHRoaXMgY2FzZSB0b28uCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24p
OgorICAgICAgICAgICAgLSBjaGFuZ2VkIHRvIGNhbGwgZGVsZXRlUHJvcGVydHkgaW5zdGVhZCBv
ZiByZW1vdmVEaXJlY3QuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKToKKyAgICAgICAgICAgIC0gdXBkYXRlZCBiaW5kaW5ncyB0ZXN0IHJlc3VsdHMuCisK
IDIwMTYtMDYtMDYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDE3MzUuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNp
b24gMjAxNzQzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTIyNzksNyArMjI3OSw4IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkbmFtZSA9ICRzaWduYXR1cmUtPm5hbWU7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoISR7ZW5hYmxlX2Z1bmN0
aW9ufSgpKSB7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oXCIkbmFtZVwiKSwgc3RybGVuKFwiJG5hbWVcIikp
O1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmVtb3ZlRGly
ZWN0KHZtLCBwcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVs
ZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMs
IGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7XG4iKTsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDIwMTc0MykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzEwLDEzICsxMzEwLDE1IEBAIHZvaWQgSlNUZXN0T2JqUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bigKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkgewogICAgICAgICBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24iKSwg
c3RybGVuKCJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uIikpOwotICAgICAgICByZW1vdmVEaXJl
Y3Qodm0sIHByb3BlcnR5TmFtZSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29w
ZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsK
KyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5n
bG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFRF
U1RfRkVBVFVSRSkKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpIHsKICAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIiksIHN0cmxlbigiZW5hYmxlZEF0
UnVudGltZUF0dHJpYnV0ZSIpKTsKLSAgICAgICAgcmVtb3ZlRGlyZWN0KHZtLCBwcm9wZXJ0eU5h
bWUpOworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpE
ZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIEpTT2JqZWN0
OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9w
ZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogICAgIEpTVk1DbGllbnREYXRhJiBjbGllbnREYXRh
ID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7Cg==
</data>
<flag name="review"
          id="304671"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>