<?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>104135</bug_id>
          
          <creation_ts>2012-12-05 09:21:18 -0800</creation_ts>
          <short_desc>JSObjectCopyPropertyNames returns non-enumerable properties.</short_desc>
          <delta_ts>2013-01-17 07:40:42 -0800</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>ASSIGNED</bug_status>
          <resolution></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="Michael Brüning">michael.bruning</reporter>
          <assigned_to name="Michael Brüning">michael.bruning</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>haraken</cc>
    
    <cc>hausmann</cc>
    
    <cc>japhet</cc>
    
    <cc>pierre.rossi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>783826</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-12-05 09:21:18 -0800</bug_when>
    <thetext>It seems that JSObjectCopyPropertyNames(JSContextRef ctx, JSObjectRef object) also returns non-enumerable properties even though the documentation states otherwise.

Came across this issue when running QtWebKit 1 evaluateJavaScript calls from the FancyBrowser QtWebKit example and the Qt bridge&apos;s convertValueToQVariantMap processed all properties instead of just the enumerable ones.

Might be caused by the void JSObject::getOwnPropertyNames(JSObject* object, ExecState* exec, PropertyNameArray&amp; propertyNames, EnumerationMode mode) implementation which does not check the EnumerationMode for numeric properties retrieved from Butterfly, but I am not an expert on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783855</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-12-05 09:46:50 -0800</bug_when>
    <thetext>Interesting. There&apos;s a unit test in Source/JavaScriptCore/API/tests/testapi.c that should cover this. Hmm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784949</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-12-06 07:53:13 -0800</bug_when>
    <thetext>It might be because the test uses two strings and for those, the enumeration mode is enforced. I&apos;ll dig a bit more, for I might also be wrong here...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792617</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-12-17 04:08:39 -0800</bug_when>
    <thetext>We (Allan and I) were just discussing whether this might be the cause of the performance degradation reported in [1], as the QtWebKit 2.3 implementation filtered out non-enumerable properties when converting QVariant maps.

I did a bit of reading in the ECMAScript 5 standard [2] to see how getOwnPropertyNames was meant to behave. Section 15.2.3.4 states that getOwnPropertyNames should return _all_ named properties, not only the enumerable ones. The property names in the array that is returned should all be enumerable.

The question is whether the documentation for JSObjectCopyPropertyNames is wrong and it should just return all property names or whether it&apos;s the JSObjectCopyPropertyNames implementation that needs fixing. Should the former be the case, then we&apos;d need to re-add the checks for enumerable properties to the JS bridge IMO.

[1] https://bugs.webkit.org/show_bug.cgi?id=104540
[2] http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803190</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-01-09 03:14:27 -0800</bug_when>
    <thetext>Tried filtering the non-enumerable properties in the Qt JS bridge&apos;s convertValueToQVariantMap, but this leads to another ASSERT that seems to have to do with another thread holding the lock on the JS heap. 

I suppose this needs to be corrected in the JS API anyway as at least JSObjectCopyPropertyNames should not return non-enumerable properties according to the documentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808482</commentid>
    <comment_count>5</comment_count>
      <attachid>183003</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-01-16 10:07:54 -0800</bug_when>
    <thetext>Created attachment 183003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808523</commentid>
    <comment_count>6</comment_count>
      <attachid>183003</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-16 10:46:13 -0800</bug_when>
    <thetext>Comment on attachment 183003
Patch

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

Is there any way to have test code to cover this? Is this code path only used in JSObjectCopyPropertyNames? Isn’t it also used in JavaScript execution for the &quot;for in&quot; statement? We need test coverage.

&gt; Source/WebCore/ChangeLog:11
&gt; +        Also adds and additional filter in the Qt JS bridge that was there before.   

Typo: and

&gt; Source/WebCore/bindings/js/JSDOMStringMapCustom.cpp:56
&gt; +        Identifier propertyIdentifier = Identifier(exec, names[i]);

This should just use normal constructor syntax:

    Identifier propertyName(exec, names[i]);

&gt; Source/WebCore/bindings/js/JSStorageCustom.cpp:93
&gt; +        Identifier propertyIdentifier = Identifier(exec, thisObject-&gt;m_impl-&gt;key(i, ec));

This should just use normal constructor syntax:

    Identifier propertyName(exec, thisObject-&gt;m_impl-&gt;key(i, ec));

&gt; Source/WebCore/bindings/js/JSStorageCustom.cpp:98
&gt; +            setDOMException(exec, ec);
&gt; +            if (exec-&gt;hadException())
&gt; +                return;

These lines of code need to be outside the if statement; if we execute the code to get a key and get an exception, we need to detect that and propagate the exception even if the property is non-enumerable.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2222
&gt; +            push(@implContent, &quot;        Identifier propertyIdentifier = Identifier::from(exec, i);\n&quot;);

I think the local should be named propertyName, not propertyIdentifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809326</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2013-01-17 07:40:42 -0800</bug_when>
    <thetext>Thanks for the input! 

I&apos;ll correct the things you mentioned and look into adding some test coverage for the next version.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183003</attachid>
            <date>2013-01-16 10:07:54 -0800</date>
            <delta_ts>2013-01-16 10:46:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104135-20130116190454.patch</filename>
            <type>text/plain</type>
            <size>8305</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDU5YTU0MjQ1MDBhN2Rm
OGQ5OTgyNGM0NjE5NGYzOWEzYjVjZjk2OS4uMGJhZTlhYWQwM2FiOTViYTEwYTQxM2IxOGEyNDk0
M2ZkNDAyZDA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAxLTE2ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KKworICAgICAgICBKU09i
amVjdENvcHlQcm9wZXJ0eU5hbWVzIHJldHVybnMgbm9uLWVudW1lcmFibGUgcHJvcGVydGllcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDEzNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0
aGUgZ2VuZXJhdGVkIGFuZCBjdXN0b20gSlMgYmluZGluZyBjbGFzc2VzIHRvIGFsc28gcmVzcGVj
dAorICAgICAgICB0aGUgRW51bWVyYXRpb25Nb2RlIGFuZCBlbnVtZXJhYmxlIGRlc2NyaXB0b3Jz
IG9mIHRoZSBvYmplY3QncyBwcm9wZXJ0aWVzLgorCisgICAgICAgIEFsc28gYWRkcyBhbmQgYWRk
aXRpb25hbCBmaWx0ZXIgaW4gdGhlIFF0IEpTIGJyaWRnZSB0aGF0IHdhcyB0aGVyZSBiZWZvcmUu
ICAgCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVN0cmluZ01hcDo6Z2V0T3duUHJvcGVydHlOYW1l
cyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTU3RvcmFnZTo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUltcGxl
bWVudGF0aW9uKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5jcHA6CisgICAgICAg
IChKU0M6OkJpbmRpbmdzOjpjb252ZXJ0VmFsdWVUb1FWYXJpYW50TWFwKToKKwogMjAxMy0wMS0x
NiAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIEVGTCBidWlsZCBmaXggYWZ0ZXIgcjEzOTg3Ny4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0
b20uY3BwCmluZGV4IDY0NmQ3MWNmZmI1ZjgzOGY1ZDQ5ZDhiZWU4ZDc4ZjUwMDFhMWNjNjAuLjFj
ODNkOTU4MDA2NjhjN2ZlOGQ4MmU5MjExMmE2MzM0ZWUwY2I1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9t
LmNwcApAQCAtNDA5LDggKzQwOSwxMCBAQCB2b2lkIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0
T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZQogICAgICAg
ICAgICAgcHJvcGVydHlJZGVudGlmaWVyc1tpXSA9IElkZW50aWZpZXIoZXhlYywganNQcm9wZXJ0
eU5hbWVzW2ldLmltcGwoKSk7CiAgICAgfQogCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1D
U1NQcm9wZXJ0aWVzOyArK2kpCi0gICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKHByb3BlcnR5SWRl
bnRpZmllcnNbaV0pOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ1NTUHJvcGVydGllczsg
KytpKSB7CisgICAgICAgIGlmIChtb2RlID09IEluY2x1ZGVEb250RW51bVByb3BlcnRpZXMgfHwg
b2JqZWN0LT5wcm9wZXJ0eUlzRW51bWVyYWJsZShleGVjLCBwcm9wZXJ0eUlkZW50aWZpZXJzW2ld
KSkKKyAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKHByb3BlcnR5SWRlbnRpZmllcnNbaV0p
OworICAgIH0KIAogICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgZXhl
YywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5jcHAKaW5kZXggMDZjMWRlMTE2OWVlODM4YjVj
NDAwNjNhOTI5MTYwZWNhZWE4YjBkOC4uZDI4NjM5MTY4YTVkOWI4NmUwZTdkMWJhMTczYjI0YWI0
YzQwMTkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJp
bmdNYXBDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3Ry
aW5nTWFwQ3VzdG9tLmNwcApAQCAtNTIsOCArNTIsMTEgQEAgdm9pZCBKU0RPTVN0cmluZ01hcDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFBy
b3AKICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lczsKICAgICB0aGlzT2JqZWN0LT5tX2ltcGwtPmdl
dE5hbWVzKG5hbWVzKTsKICAgICBzaXplX3QgbGVuZ3RoID0gbmFtZXMuc2l6ZSgpOwotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgIHByb3BlcnR5TmFtZXMu
YWRkKElkZW50aWZpZXIoZXhlYywgbmFtZXNbaV0pKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlJZGVudGlmaWVy
ID0gSWRlbnRpZmllcihleGVjLCBuYW1lc1tpXSk7CisgICAgICAgIGlmIChtb2RlID09IEluY2x1
ZGVEb250RW51bVByb3BlcnRpZXMgfHwgdGhpc09iamVjdC0+cHJvcGVydHlJc0VudW1lcmFibGUo
ZXhlYywgcHJvcGVydHlJZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRk
KHByb3BlcnR5SWRlbnRpZmllcik7CisgICAgfQogCiAgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlO
YW1lcyh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwCmluZGV4IGU0ZmU4NTM4
ZTE3NmI0NTdiNjExYmU1YTdjMmYxZWJkODk2NTc5YmIuLjA3Y2M1OWRiMTgwMjU3Mjk3ZjFjNjhm
MGQzZTBjYjBkNWMxNjBmNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU3RvcmFnZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNT
dG9yYWdlQ3VzdG9tLmNwcApAQCAtOTAsMTIgKzkwLDE1IEBAIHZvaWQgSlNTdG9yYWdlOjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm47CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHByb3BlcnR5
TmFtZXMuYWRkKElkZW50aWZpZXIoZXhlYywgdGhpc09iamVjdC0+bV9pbXBsLT5rZXkoaSwgZWMp
KSk7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Ci0gICAgICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgSWRlbnRpZmll
ciBwcm9wZXJ0eUlkZW50aWZpZXIgPSBJZGVudGlmaWVyKGV4ZWMsIHRoaXNPYmplY3QtPm1faW1w
bC0+a2V5KGksIGVjKSk7CisgICAgICAgIGlmIChtb2RlID09IEluY2x1ZGVEb250RW51bVByb3Bl
cnRpZXMgfHwgdGhpc09iamVjdC0+cHJvcGVydHlJc0VudW1lcmFibGUoZXhlYywgcHJvcGVydHlJ
ZGVudGlmaWVyKSkgeworICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQocHJvcGVydHlJZGVu
dGlmaWVyKTsKKyAgICAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgICAg
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CiAgICAgfQotICAgICAgICAKKwogICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFt
ZXModGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXgg
MDJmNDgxYWVmOWI0NTg4NDc2MzY5ZjVjYjU4ZjcxMDdmOTkwODk0Ny4uMzQzZjNiYzM0Y2FmM2Iy
YTY4ZjFkZGFiMmZhZThjYmE1MzIzZWJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTIyMTgsOCArMjIxOCwxMSBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4ob2JqZWN0
KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7CiAgICAgICAgIGlmICgkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5kZXhlZEdldHRlciJ9IHx8ICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1lcmljSW5kZXhlZEdldHRlciJ9KSB7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3Rh
dGljX2Nhc3Q8JHtpbnRlcmZhY2VOYW1lfSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgp
OyArK2kpXG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBwcm9w
ZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRp
Y19jYXN0PCR7aW50ZXJmYWNlTmFtZX0qPih0aGlzT2JqZWN0LT5pbXBsKCkpLT5sZW5ndGgoKTsg
KytpKSB7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJZGVu
dGlmaWVyIHByb3BlcnR5SWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZyb20oZXhlYywgaSk7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBpZiAobW9kZSA9PSBJ
bmNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzIHx8IG9iamVjdC0+cHJvcGVydHlJc0VudW1lcmFibGUo
ZXhlYywgcHJvcGVydHlJZGVudGlmaWVyKSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChwcm9wZXJ0eUlkZW50aWZpZXIp
O1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAg
ICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgQmFzZTo6Z2V0T3duUHJvcGVy
dHlOYW1lcyh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTtcbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcnVudGltZS5jcHAKaW5kZXggZTJjYTQ2NWRlZDZiOWQ2M2UzOGMxZTEyYzAzNTVmODNkZmNj
ODRkYS4uZGY4MjAyM2IzZGE3ODcwZmY1NmU1MjIwNjY0ZGYxM2Y1Y2NlNTkwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1
ZGUgInF0X3J1bnRpbWUuaCIKIAogI2luY2x1ZGUgIkFQSUNhc3QuaCIKKyNpbmNsdWRlICJBUElT
aGltcy5oIgogI2luY2x1ZGUgIkJvb2xlYW5PYmplY3QuaCIKICNpbmNsdWRlICJEYXRlSW5zdGFu
Y2UuaCIKICNpbmNsdWRlICJEYXRlUHJvdG90eXBlLmgiCkBAIC0zOCw2ICszOSw3IEBACiAjaW5j
bHVkZSAiSlNSZXRhaW5QdHIuaCIKICNpbmNsdWRlICJKU1VpbnQ4Q2xhbXBlZEFycmF5LmgiCiAj
aW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcuaCIK
ICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgogI2luY2x1ZGUgInFkYXRldGltZS5oIgog
I2luY2x1ZGUgInFkZWJ1Zy5oIgpAQCAtMjE3LDE3ICsyMTksMjAgQEAgc3RhdGljIFFWYXJpYW50
TWFwIGNvbnZlcnRWYWx1ZVRvUVZhcmlhbnRNYXAoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIG8KICAgICBRVmFyaWFudE1hcCByZXN1bHQ7CiAgICAgSlNQcm9wZXJ0eU5hbWVBcnJh
eVJlZiBwcm9wZXJ0aWVzID0gSlNPYmplY3RDb3B5UHJvcGVydHlOYW1lcyhjb250ZXh0LCBvYmpl
Y3QpOwogICAgIHNpemVfdCBwcm9wZXJ0eUNvdW50ID0gSlNQcm9wZXJ0eU5hbWVBcnJheUdldENv
dW50KHByb3BlcnRpZXMpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHRvSlMoY29udGV4dCk7Cisg
ICAgSlNPYmplY3QqIGpzT2JqZWN0ID0gdG9KUyhvYmplY3QpOwogCiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyArK2kpIHsKICAgICAgICAgSlNTdHJpbmdSZWYgbmFt
ZSA9IEpTUHJvcGVydHlOYW1lQXJyYXlHZXROYW1lQXRJbmRleChwcm9wZXJ0aWVzLCBpKTsKLQot
ICAgICAgICBpbnQgcHJvcGVydHlDb252ZXJzaW9uRGlzdGFuY2UgPSAwOwotICAgICAgICBKU1Zh
bHVlUmVmIHByb3BlcnR5ID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCBvYmplY3QsIG5h
bWUsIGV4Y2VwdGlvbik7Ci0gICAgICAgIFFWYXJpYW50IHYgPSBjb252ZXJ0VmFsdWVUb1FWYXJp
YW50KGNvbnRleHQsIHByb3BlcnR5LCBRTWV0YVR5cGU6OlZvaWQsICZwcm9wZXJ0eUNvbnZlcnNp
b25EaXN0YW5jZSwgdmlzaXRlZE9iamVjdHMsIHJlY3Vyc2lvbkxpbWl0LCBleGNlcHRpb24pOwot
ICAgICAgICBpZiAoZXhjZXB0aW9uICYmICpleGNlcHRpb24pCi0gICAgICAgICAgICAqZXhjZXB0
aW9uID0gMDsKLSAgICAgICAgZWxzZSBpZiAocHJvcGVydHlDb252ZXJzaW9uRGlzdGFuY2UgPj0g
MCkgewotICAgICAgICAgICAgcmVzdWx0Lmluc2VydCh0b1N0cmluZyhuYW1lKSwgdik7CisgICAg
ICAgIEFQSUVudHJ5U2hpbSBlbnRyeVNoaW0oZXhlYyk7CisgICAgICAgIGlmIChqc09iamVjdC0+
cHJvcGVydHlJc0VudW1lcmFibGUoZXhlYywgbmFtZS0+aWRlbnRpZmllcigmZXhlYy0+Z2xvYmFs
RGF0YSgpKSkpIHsKKyAgICAgICAgICAgIGludCBwcm9wZXJ0eUNvbnZlcnNpb25EaXN0YW5jZSA9
IDA7CisgICAgICAgICAgICBKU1ZhbHVlUmVmIHByb3BlcnR5ID0gSlNPYmplY3RHZXRQcm9wZXJ0
eShjb250ZXh0LCBvYmplY3QsIG5hbWUsIGV4Y2VwdGlvbik7CisgICAgICAgICAgICBRVmFyaWFu
dCB2ID0gY29udmVydFZhbHVlVG9RVmFyaWFudChjb250ZXh0LCBwcm9wZXJ0eSwgUU1ldGFUeXBl
OjpWb2lkLCAmcHJvcGVydHlDb252ZXJzaW9uRGlzdGFuY2UsIHZpc2l0ZWRPYmplY3RzLCByZWN1
cnNpb25MaW1pdCwgZXhjZXB0aW9uKTsKKyAgICAgICAgICAgIGlmIChleGNlcHRpb24gJiYgKmV4
Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAqZXhjZXB0aW9uID0gMDsKKyAgICAgICAgICAgIGVs
c2UgaWYgKHByb3BlcnR5Q29udmVyc2lvbkRpc3RhbmNlID49IDApCisgICAgICAgICAgICAgICAg
cmVzdWx0Lmluc2VydCh0b1N0cmluZyhuYW1lKSwgdik7CiAgICAgICAgIH0KICAgICB9CiAgICAg
SlNQcm9wZXJ0eU5hbWVBcnJheVJlbGVhc2UocHJvcGVydGllcyk7Cg==
</data>
<flag name="review"
          id="201221"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>