<?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>190137</bug_id>
          
          <creation_ts>2018-10-01 06:57:16 -0700</creation_ts>
          <short_desc>[JSC] Add a C++ callable overload of objectConstructorSeal</short_desc>
          <delta_ts>2018-10-03 05:06:25 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>189947</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Koby">koby.b</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1464994</commentid>
    <comment_count>0</comment_count>
    <who name="Koby">koby.b</who>
    <bug_when>2018-10-01 06:57:16 -0700</bug_when>
    <thetext>Hi,
In node-jsc, I needed to be able to seal an object from c++. Thus, I&apos;ve added a objectConstructorSeal overload which receives a JSObject, and refactor the existing objectConstructorSeal to use it (similar to objectConstructorFreeze).

I&apos;m attaching the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464996</commentid>
    <comment_count>1</comment_count>
      <attachid>351244</attachid>
    <who name="Koby">koby.b</who>
    <bug_when>2018-10-01 07:04:55 -0700</bug_when>
    <thetext>Created attachment 351244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465008</commentid>
    <comment_count>2</comment_count>
      <attachid>351244</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-01 08:08:55 -0700</bug_when>
    <thetext>Comment on attachment 351244
Patch

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

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:795
&gt;      if (UNLIKELY(!success)) {
&gt; -        throwTypeError(exec, scope, &quot;Unable to prevent extension in Object.seal&quot;_s);
&gt; -        return encodedJSValue();
&gt; +        return throwTypeError(exec, scope, &quot;Unable to prevent extension in Object.seal&quot;_s);
&gt;      }

Remove `{` and `}`.

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:803
&gt; +    VM&amp; vm = exec-&gt;vm();
&gt; +    auto scope = DECLARE_THROW_SCOPE(vm);

In this case (expression which can cause an error is the last expression, and we do not have the other expressions which can cause an error), we don&apos;t need it.

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:811
&gt; +    JSObject* result = objectConstructorSeal(exec, asObject(obj));
&gt; +    RETURN_IF_EXCEPTION(scope, encodedJSValue());
&gt; +    return JSValue::encode(result);

In this case, we can just do

return JSValue::enccode(objectConstructorSeal(exec, asObject(obj)));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465074</commentid>
    <comment_count>3</comment_count>
    <who name="Koby">koby.b</who>
    <bug_when>2018-10-01 10:26:18 -0700</bug_when>
    <thetext>Will upload a new patch. 
Note that your last two comments are also relevant to objectConstructorFreeze which follows (and which I basically copied). Should modify it too and upload a patch (maybe in a separate bug)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465172</commentid>
    <comment_count>4</comment_count>
      <attachid>351244</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-01 12:35:05 -0700</bug_when>
    <thetext>Comment on attachment 351244
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:803
&gt;&gt; +    auto scope = DECLARE_THROW_SCOPE(vm);
&gt; 
&gt; In this case (expression which can cause an error is the last expression, and we do not have the other expressions which can cause an error), we don&apos;t need it.

I&apos;m personally of the belief that we should have the scope anyway as the code can change in the future. It&apos;s good to be safe.

&gt;&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:811
&gt;&gt; +    return JSValue::encode(result);
&gt; 
&gt; In this case, we can just do
&gt; 
&gt; return JSValue::enccode(objectConstructorSeal(exec, asObject(obj)));

If you decide to keep the scope, I would do:

scope.release();
return JSValue::enccode(objectConstructorSeal(exec, asObject(obj)));

Maybe we should have a macro for releasing then returning? We seem to do it a lot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465426</commentid>
    <comment_count>5</comment_count>
    <who name="Koby">koby.b</who>
    <bug_when>2018-10-02 00:39:34 -0700</bug_when>
    <thetext>@Yusuke what do you think? should I remove the scope or leave it and use the new RELEASE_AND_RETURN?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465500</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-02 04:46:29 -0700</bug_when>
    <thetext>(In reply to Koby from comment #5)
&gt; @Yusuke what do you think? should I remove the scope or leave it and use the
&gt; new RELEASE_AND_RETURN?

Both are OK to me if you use RETURN_AND_RELEASE (which is already defined in runtime/ExceptionScope.h).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465520</commentid>
    <comment_count>7</comment_count>
    <who name="Koby">koby.b</who>
    <bug_when>2018-10-02 06:06:32 -0700</bug_when>
    <thetext>OK, i&apos;ll update the code.
Just one more thing that I&apos;ve noticed and wanted to be sure about: In both objectConstructorSeal and objectConstructorFreeze, if setIntegrityLevel throws an exception an empty value is returned, while if it returns false, an exception is (thrown and) returned. Is this desirable? just making sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465523</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-02 06:16:12 -0700</bug_when>
    <thetext>(In reply to Koby from comment #7)
&gt; OK, i&apos;ll update the code.
&gt; Just one more thing that I&apos;ve noticed and wanted to be sure about: In both
&gt; objectConstructorSeal and objectConstructorFreeze, if setIntegrityLevel
&gt; throws an exception an empty value is returned, while if it returns false,
&gt; an exception is (thrown and) returned. Is this desirable? just making sure.

Except for some intentional cases (for optimization, see EXCEPTION_ASSERT code in JSC :) ), it is OK that the returned value of the function causing an exception is anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466011</commentid>
    <comment_count>9</comment_count>
      <attachid>351507</attachid>
    <who name="Koby">koby.b</who>
    <bug_when>2018-10-03 04:23:33 -0700</bug_when>
    <thetext>Created attachment 351507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466013</commentid>
    <comment_count>10</comment_count>
      <attachid>351507</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-03 04:29:10 -0700</bug_when>
    <thetext>Comment on attachment 351507
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466014</commentid>
    <comment_count>11</comment_count>
    <who name="Koby">koby.b</who>
    <bug_when>2018-10-03 04:30:41 -0700</bug_when>
    <thetext>@Yusuke great, I wasn&apos;t sure :)
So just a couple of notes regarding the new patch:
- So now that I&apos;ve removed the RETURN_IF_EXCEPTION, the javascript callable objectConstructorSeal might return the exception, instead of always returning an empty value (but in the previous comment @Yusuke wrote that it&apos;s OK).
- If approved, I would do the same change (RELEASE_AND_RETURN) for objectConstructorFreeze, which is exactly the same. I didn&apos;t want to add it to this patch because it&apos;s not directly related. What do you t think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466018</commentid>
    <comment_count>12</comment_count>
      <attachid>351507</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-03 05:05:55 -0700</bug_when>
    <thetext>Comment on attachment 351507
Patch

Clearing flags on attachment: 351507

Committed r236791: &lt;https://trac.webkit.org/changeset/236791&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466019</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-03 05:05:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466020</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-03 05:06:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/44970666&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351244</attachid>
            <date>2018-10-01 07:04:55 -0700</date>
            <delta_ts>2018-10-03 04:23:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190137-20181001170452.patch</filename>
            <type>text/plain</type>
            <size>3615</size>
            <attacher name="Koby">koby.b</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OTEyMWY4MTFjYjc3MGYxZTRiYWE4ZjVhMzQ0ZDk5NGNlYjUwYWI0Li5kY2Y3ZDg0NjE4ZWQ0ZjRi
MWM5NzZhOTk2YTdlZTRiYTQxODgyNTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxOC0xMC0wMSAgS29ieSBCb3lhbmdvICA8a29ieS5iQG1jZS1zeXMuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBhIEMrKyBjYWxsYWJsZSBvdmVybG9hZCBvZiBvYmplY3RD
b25zdHJ1Y3RvclNlYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MDEzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorCiAyMDE4LTEwLTAxICBLb2J5IEJveWFuZ28gIDxrb2J5
LmJAbWNlLXN5cy5jb20+CiAKICAgICAgICAgW0pTQ10gQWRkIGEgSlNPTlN0cmluZ2lmeSBvdmVy
bG9hZCB0aGF0IHJlY2VpdmVzIGEgSlNWYWx1ZSBzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDNmOWY4MWMzNGZk
Mjk2Y2UyN2JmYmQ3MGMxOTdlYmEwODI5MGJlMDMuLmYzOGEyNzgwNjM0YjJhZWJjMjM0ODJlMWI4
NjUyNDZlNzZiZTg4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTc3OCwzMCArNzc4LDM3IEBAIGJvb2wgdGVzdElu
dGVncml0eUxldmVsKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dENvbnN0cnVjdG9yU2VhbChFeGVjU3RhdGUqIGV4ZWMpCitKU09iamVjdCogb2JqZWN0Q29uc3Ry
dWN0b3JTZWFsKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCkKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAotICAgIC8vIDEuIElmIFR5cGUoTykgaXMgbm90IE9iamVjdCwgcmV0dXJuIE8uCi0gICAg
SlNWYWx1ZSBvYmogPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBpZiAoIW9iai5pc09iamVjdCgp
KQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iaik7Ci0gICAgSlNPYmplY3QqIG9i
amVjdCA9IGFzT2JqZWN0KG9iaik7Ci0KICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU0ZpbmFsT2Jq
ZWN0Kj4odm0sIG9iamVjdCkgJiYgIWhhc0luZGV4ZWRQcm9wZXJ0aWVzKG9iamVjdC0+aW5kZXhp
bmdUeXBlKCkpKSB7CiAgICAgICAgIG9iamVjdC0+c2VhbCh2bSk7Ci0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUob2JqKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKICAg
ICBib29sIHN1Y2Nlc3MgPSBzZXRJbnRlZ3JpdHlMZXZlbDxJbnRlZ3JpdHlMZXZlbDo6U2VhbGVk
PihleGVjLCB2bSwgb2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsK
ICAgICBpZiAoVU5MSUtFTFkoIXN1Y2Nlc3MpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGV4
ZWMsIHNjb3BlLCAiVW5hYmxlIHRvIHByZXZlbnQgZXh0ZW5zaW9uIGluIE9iamVjdC5zZWFsIl9z
KTsKLSAgICAgICAgcmV0dXJuIGVuY29kZWRKU1ZhbHVlKCk7CisgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcihleGVjLCBzY29wZSwgIlVuYWJsZSB0byBwcmV2ZW50IGV4dGVuc2lvbiBpbiBP
YmplY3Quc2VhbCJfcyk7CiAgICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmop
OworICAgIHJldHVybiBvYmplY3Q7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0Q29uc3RydWN0b3JTZWFsKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKwor
ICAgIC8vIDEuIElmIFR5cGUoTykgaXMgbm90IE9iamVjdCwgcmV0dXJuIE8uCisgICAgSlNWYWx1
ZSBvYmogPSBleGVjLT5hcmd1bWVudCgwKTsKKyAgICBpZiAoIW9iai5pc09iamVjdCgpKQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iaik7CisgICAgSlNPYmplY3QqIHJlc3VsdCA9
IG9iamVjdENvbnN0cnVjdG9yU2VhbChleGVjLCBhc09iamVjdChvYmopKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKIEpTT2JqZWN0KiBvYmplY3RDb25zdHJ1Y3RvckZyZWV6
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAppbmRleCAwY2Q3ZTkzNzEwYjhi
NmJjZmJhZDAyOTA0YmQyZGZlYjA2YTk5ZjUwLi4xMzc3OTQ5ZGNhZjYwNWRlMjY4NjI4NzUxOTgw
OTU3MTZjM2YzMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmgKQEAgLTExOCw2ICsxMTgsNyBAQCBpbmxpbmUgSlNPYmplY3QqIGNv
bnN0cnVjdE9iamVjdEZyb21Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBQcgogCiAKIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBvYmplY3RDb25zdHJ1Y3RvckZy
ZWV6ZShFeGVjU3RhdGUqLCBKU09iamVjdCopOworSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3Qq
IG9iamVjdENvbnN0cnVjdG9yU2VhbChFeGVjU3RhdGUqLCBKU09iamVjdCopOwogSlNWYWx1ZSBv
YmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBKU09i
amVjdCosIGNvbnN0IElkZW50aWZpZXImKTsKIEpTVmFsdWUgb2JqZWN0Q29uc3RydWN0b3JHZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0Kik7CiBKU0FycmF5KiBv
d25Qcm9wZXJ0eUtleXMoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBQcm9wZXJ0eU5hbWVNb2RlLCBE
b250RW51bVByb3BlcnRpZXNNb2RlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351507</attachid>
            <date>2018-10-03 04:23:33 -0700</date>
            <delta_ts>2018-10-03 05:05:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190137-20181003142330.patch</filename>
            <type>text/plain</type>
            <size>3583</size>
            <attacher name="Koby">koby.b</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZjZjODFhODU3ZDAyZTlkMTA4YzA0NzA1NjY4ZDM2MWQ5MzhmOTVkLi40ZjljMWQ1ZGQwOThmZmNi
MDQwYmFkMjY1YjQwNDU5MjJjNzI4YWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxOC0xMC0wMSAgS29ieSBCb3lhbmdvICA8a29ieS5iQG1jZS1zeXMuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBhIEMrKyBjYWxsYWJsZSBvdmVybG9hZCBvZiBvYmplY3RD
b25zdHJ1Y3RvclNlYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MDEzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorCiAyMDE4LTEwLTAxICBLb2J5IEJveWFuZ28gIDxrb2J5
LmJAbWNlLXN5cy5jb20+CiAKICAgICAgICAgW0pTQ10gQWRkIGEgSlNPTlN0cmluZ2lmeSBvdmVy
bG9hZCB0aGF0IHJlY2VpdmVzIGEgSlNWYWx1ZSBzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDcyZjVjY2MxYmRh
MWE3OTFlMWNkNzYyOTk5M2FiMDU3ZDcwMDE5MGYuLjkwYTM2YTkzNTU3OGYyYjhlMzEzMTEzZDI5
ZDkwYmE5ZDQ2NmE5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTc2NiwzMCArNzY2LDM1IEBAIGJvb2wgdGVzdElu
dGVncml0eUxldmVsKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dENvbnN0cnVjdG9yU2VhbChFeGVjU3RhdGUqIGV4ZWMpCitKU09iamVjdCogb2JqZWN0Q29uc3Ry
dWN0b3JTZWFsKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCkKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAotICAgIC8vIDEuIElmIFR5cGUoTykgaXMgbm90IE9iamVjdCwgcmV0dXJuIE8uCi0gICAg
SlNWYWx1ZSBvYmogPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBpZiAoIW9iai5pc09iamVjdCgp
KQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iaik7Ci0gICAgSlNPYmplY3QqIG9i
amVjdCA9IGFzT2JqZWN0KG9iaik7Ci0KICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU0ZpbmFsT2Jq
ZWN0Kj4odm0sIG9iamVjdCkgJiYgIWhhc0luZGV4ZWRQcm9wZXJ0aWVzKG9iamVjdC0+aW5kZXhp
bmdUeXBlKCkpKSB7CiAgICAgICAgIG9iamVjdC0+c2VhbCh2bSk7Ci0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUob2JqKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKICAg
ICBib29sIHN1Y2Nlc3MgPSBzZXRJbnRlZ3JpdHlMZXZlbDxJbnRlZ3JpdHlMZXZlbDo6U2VhbGVk
PihleGVjLCB2bSwgb2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKLSAgICBpZiAoVU5MSUtFTFkoIXN1Y2Nlc3MpKSB7Ci0gICAgICAgIHRo
cm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCAiVW5hYmxlIHRvIHByZXZlbnQgZXh0ZW5zaW9uIGlu
IE9iamVjdC5zZWFsIl9zKTsKLSAgICAgICAgcmV0dXJuIGVuY29kZWRKU1ZhbHVlKCk7Ci0gICAg
fQorICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIGlmIChVTkxJ
S0VMWSghc3VjY2VzcykpCisgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjLCBzY29w
ZSwgIlVuYWJsZSB0byBwcmV2ZW50IGV4dGVuc2lvbiBpbiBPYmplY3Quc2VhbCJfcyk7CisKKyAg
ICByZXR1cm4gb2JqZWN0OworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dENvbnN0cnVjdG9yU2VhbChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICAv
LyAxLiBJZiBUeXBlKE8pIGlzIG5vdCBPYmplY3QsIHJldHVybiBPLgorICAgIEpTVmFsdWUgb2Jq
ID0gZXhlYy0+YXJndW1lbnQoMCk7CisgICAgaWYgKCFvYmouaXNPYmplY3QoKSkKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmopOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShvYmopOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG9i
amVjdENvbnN0cnVjdG9yU2VhbChleGVjLCBhc09iamVjdChvYmopKSkpOwogfQogCiBKU09iamVj
dCogb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2Jq
ZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmgKaW5kZXggMGNkN2U5MzcxMGI4YjZiY2ZiYWQwMjkwNGJkMmRmZWIwNmE5OWY1MC4uMTM3
Nzk0OWRjYWY2MDVkZTI2ODYyODc1MTk4MDk1NzE2YzNmMzJmMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC0xMTgsNiArMTE4
LDcgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RPYmplY3RGcm9tUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUHIKIAogCiBKU19FWFBPUlRfUFJJVkFURSBKU09i
amVjdCogb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoRXhlY1N0YXRlKiwgSlNPYmplY3QqKTsKK0pT
X0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBvYmplY3RDb25zdHJ1Y3RvclNlYWwoRXhlY1N0YXRl
KiwgSlNPYmplY3QqKTsKIEpTVmFsdWUgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBjb25zdCBJZGVudGlmaWVyJik7CiBKU1Zh
bHVlIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhFeGVjU3RhdGUq
LCBKU09iamVjdCopOwogSlNBcnJheSogb3duUHJvcGVydHlLZXlzKEV4ZWNTdGF0ZSosIEpTT2Jq
ZWN0KiwgUHJvcGVydHlOYW1lTW9kZSwgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>