<?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>170097</bug_id>
          
          <creation_ts>2017-03-25 04:55:20 -0700</creation_ts>
          <short_desc>[JSC] Move platformThreadSignal to WTF</short_desc>
          <delta_ts>2017-03-29 15:07:15 -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>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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1291187</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-25 04:55:20 -0700</bug_when>
    <thetext>[JSC] Move platformThreadSignal to WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291188</commentid>
    <comment_count>1</comment_count>
      <attachid>305375</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-25 04:57:24 -0700</bug_when>
    <thetext>Created attachment 305375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291189</commentid>
    <comment_count>2</comment_count>
      <attachid>305375</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-25 05:01:17 -0700</bug_when>
    <thetext>Comment on attachment 305375
Patch

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

&gt; Source/JavaScriptCore/runtime/JSLock.cpp:112
&gt; +    m_ownerThread = currentThread();

I think it does not cause so much cost. Basically, currentThread() just loads a identifier from thread local storage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291574</commentid>
    <comment_count>3</comment_count>
      <attachid>305375</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-03-27 13:05:33 -0700</bug_when>
    <thetext>Comment on attachment 305375
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:112
&gt;&gt; +    m_ownerThread = currentThread();
&gt; 
&gt; I think it does not cause so much cost. Basically, currentThread() just loads a identifier from thread local storage.

I think this is fine but I would like to run it on some benchmarks first just to make sure.  I&apos;ll r+ if I don&apos;t find any issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292007</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-03-28 12:42:46 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #3)
&gt; &gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:112
&gt; &gt;&gt; +    m_ownerThread = currentThread();
&gt; &gt; 
&gt; &gt; I think it does not cause so much cost. Basically, currentThread() just loads a identifier from thread local storage.
&gt; 
&gt; I think this is fine but I would like to run it on some benchmarks first
&gt; just to make sure.  I&apos;ll r+ if I don&apos;t find any issues.

I&apos;ve run the JSC benchmarks and Speedometer.  Perf is neutral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292009</commentid>
    <comment_count>5</comment_count>
      <attachid>305375</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-03-28 12:43:07 -0700</bug_when>
    <thetext>Comment on attachment 305375
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292026</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-28 13:01:05 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #4)
&gt; (In reply to Mark Lam from comment #3)
&gt; &gt; &gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:112
&gt; &gt; &gt;&gt; +    m_ownerThread = currentThread();
&gt; &gt; &gt; 
&gt; &gt; &gt; I think it does not cause so much cost. Basically, currentThread() just loads a identifier from thread local storage.
&gt; &gt; 
&gt; &gt; I think this is fine but I would like to run it on some benchmarks first
&gt; &gt; just to make sure.  I&apos;ll r+ if I don&apos;t find any issues.
&gt; 
&gt; I&apos;ve run the JSC benchmarks and Speedometer.  Perf is neutral.

Thanks!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292035</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-28 13:08:58 -0700</bug_when>
    <thetext>Committed r214489: &lt;http://trac.webkit.org/changeset/214489&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292583</commentid>
    <comment_count>8</comment_count>
      <attachid>305375</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-03-29 14:30:57 -0700</bug_when>
    <thetext>Comment on attachment 305375
Patch

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

&gt; Source/JavaScriptCore/runtime/VMTraps.cpp:458
&gt; +                signalThread(optionalOwnerThread.value(), SIGUSR1);

This function is only defined for USE(PTHREAD), no? Won&apos;t that break configurations which aren&apos;t USE(PTHREAD) but which build VMTraps.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292591</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-03-29 14:48:32 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #8)
&gt; Comment on attachment 305375 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=305375&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/VMTraps.cpp:458
&gt; &gt; +                signalThread(optionalOwnerThread.value(), SIGUSR1);
&gt; 
&gt; This function is only defined for USE(PTHREAD), no? Won&apos;t that break
&gt; configurations which aren&apos;t USE(PTHREAD) but which build VMTraps.cpp?

There&apos;s a fall back to a polling based VMTraps for platforms that don&apos;t support this.  Right now, the signaling implementation is only used on an opt-in basis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292598</commentid>
    <comment_count>10</comment_count>
      <attachid>305375</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-03-29 15:07:15 -0700</bug_when>
    <thetext>Comment on attachment 305375
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/VMTraps.cpp:458
&gt;&gt;&gt; +                signalThread(optionalOwnerThread.value(), SIGUSR1);
&gt;&gt; 
&gt;&gt; This function is only defined for USE(PTHREAD), no? Won&apos;t that break configurations which aren&apos;t USE(PTHREAD) but which build VMTraps.cpp?
&gt; 
&gt; There&apos;s a fall back to a polling based VMTraps for platforms that don&apos;t support this.  Right now, the signaling implementation is only used on an opt-in basis.

Also USE(PTHREAD) is true for all OS(UNIX), and OS(UNIX) is true for OS(DARWIN), etc.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305375</attachid>
            <date>2017-03-25 04:57:24 -0700</date>
            <delta_ts>2017-03-28 12:43:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170097-20170325205723.patch</filename>
            <type>text/plain</type>
            <size>7908</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MDRhMDdmMzJiNDI2MTEwYjBmYWVmMWU4MWMwZjg0Yjc4NjdmZjYwLi4zNTAxYmE5NjZhNDZjMDk5
MzVlYzkyYzAwNTIwZDYzYjU5MzIxY2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxNy0wMy0yNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBNb3ZlIHBsYXRmb3JtVGhyZWFkU2lnbmFsIHRvIFdURgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwMDk3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgaXMgYSBz
bWFsbCBjbGVhbiB1cCB0b3dhcmRzIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzAwMjcuCisgICAgICAgIHBsYXRmb3JtVGhyZWFkU2lnbmFsIHVzZXMgUGxhdGZvcm1U
aHJlYWQgaW4gSlNDLCBidXQgaXQgY2FuIGJlIGltcGxlbWVudGVkIGluCisgICAgICAgIFdURiBU
aHJlYWRJZGVudGlmaWVyLgorCisgICAgICAgICogcnVudGltZS9KU0xvY2suY3BwOgorICAgICAg
ICAoSlNDOjpKU0xvY2s6OmxvY2spOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAg
ICAgIChKU0M6OkpTTG9jazo6b3duZXJUaHJlYWQpOgorICAgICAgICAoSlNDOjpKU0xvY2s6OmN1
cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKToKKyAgICAgICAgKiBydW50aW1lL1BsYXRmb3JtVGhy
ZWFkLmg6CisgICAgICAgIChKU0M6OnBsYXRmb3JtVGhyZWFkU2lnbmFsKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6OlZNOjpvd25lclRocmVhZCk6Cisg
ICAgICAgICogcnVudGltZS9WTVRyYXBzLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1UcmFwczo6U2ln
bmFsU2VuZGVyOjpzZW5kKToKKwogMjAxNy0wMy0yNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIHNvbWUgaW5zdHJ1bWVudGF0aW9uIGluIEhlYXA6OnJlc3Vt
ZVRoZVBlcmlwaGVyeSgpIHRvIGhlbHAgZGVidWcgYW4gaXNzdWUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU5YmNkZTQyZTEz
ZTcwY2M4ZGE5MzRiNjEzMjhhMmEzNDA1OGVmY2UuLmYzN2I3OWFiZjg0NmFhMjgyOGJjODc1MGI3
Njk0NzgxMzViM2NlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDMtMjUgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gTW92ZSBwbGF0
Zm9ybVRocmVhZFNpZ25hbCB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MDA5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd3RmL1RocmVhZGluZy5oOgorICAgICAgICAqIHd0Zi9UaHJlYWRp
bmdQdGhyZWFkcy5jcHA6CisgICAgICAgIChXVEY6OnNpZ25hbFRocmVhZCk6CisKIDIwMTctMDMt
MjQgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkFzc2Vt
Ymx5OiBzdG9yZSBzdGF0ZSBpbiBUTFMgaW5zdGVhZCBvZiBvbiBWTQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKaW5kZXggMTU1N2E3YTBmMWE0OTJlZDlhZTE1NjYzZDUz
MzIxNGE5MTY4ZjMzYi4uMDFiMWZlMTI3ZThiNzMxZmI1M2I3YzJjZGI5OWVlMTlkZDVhZGE2OCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC0xMDksNyArMTA5
LDcgQEAgdm9pZCBKU0xvY2s6OmxvY2soaW50cHRyX3QgbG9ja0NvdW50KQogICAgICAgICBtX2xv
Y2subG9jaygpOwogICAgIH0KIAotICAgIG1fb3duZXJUaHJlYWQgPSBjdXJyZW50UGxhdGZvcm1U
aHJlYWQoKTsKKyAgICBtX293bmVyVGhyZWFkID0gY3VycmVudFRocmVhZCgpOwogICAgIFdURjo6
c3RvcmVTdG9yZUZlbmNlKCk7CiAgICAgbV9oYXNPd25lclRocmVhZCA9IHRydWU7CiAgICAgQVNT
RVJUKCFtX2xvY2tDb3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCmlu
ZGV4IDc2MThjZTM5ZDgwODM4YmFmMzk4NTBiM2UyYTA0ZDNiY2RhMTMzY2UuLjBjMzU4NDdlNDIz
ZTY0YmM3MDUwM2Q1ZTFkODVkNDgwNTA5ZGJlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTG9jay5oCkBAIC0yMCw3ICsyMCw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSAiUGxhdGZvcm1UaHJlYWQuaCIKICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBAIC05MywxMyArOTIsMTMgQEAgY2xh
c3MgSlNMb2NrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEpTTG9jaz4gewogCiAgICAg
Vk0qIHZtKCkgeyByZXR1cm4gbV92bTsgfQogCi0gICAgc3RkOjpvcHRpb25hbDxQbGF0Zm9ybVRo
cmVhZD4gb3duZXJUaHJlYWQoKSBjb25zdAorICAgIHN0ZDo6b3B0aW9uYWw8VGhyZWFkSWRlbnRp
Zmllcj4gb3duZXJUaHJlYWQoKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKG1faGFzT3duZXJU
aHJlYWQpCiAgICAgICAgICAgICByZXR1cm4gbV9vd25lclRocmVhZDsKLSAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9Ci0gICAgYm9vbCBjdXJy
ZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpIHsgcmV0dXJuIG1faGFzT3duZXJUaHJlYWQgJiYgbV9v
d25lclRocmVhZCA9PSBjdXJyZW50UGxhdGZvcm1UaHJlYWQoKTsgfQorICAgIGJvb2wgY3VycmVu
dFRocmVhZElzSG9sZGluZ0xvY2soKSB7IHJldHVybiBtX2hhc093bmVyVGhyZWFkICYmIG1fb3du
ZXJUaHJlYWQgPT0gY3VycmVudFRocmVhZCgpOyB9CiAKICAgICB2b2lkIHdpbGxEZXN0cm95Vk0o
Vk0qKTsKIApAQCAtMTM2LDcgKzEzNSw3IEBAIGNsYXNzIEpTTG9jayA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxKU0xvY2s+IHsKICAgICAvLyBkaWZmZXJlbnQgdGhyZWFkLCBhbmQgYW4g
b3B0aW9uYWwgaXMgdnVsbmVyYWJsZSB0byByYWNlcy4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTA0MiNjNgogICAgIGJvb2wgbV9oYXNPd25l
clRocmVhZCB7IGZhbHNlIH07Ci0gICAgUGxhdGZvcm1UaHJlYWQgbV9vd25lclRocmVhZDsKKyAg
ICBUaHJlYWRJZGVudGlmaWVyIG1fb3duZXJUaHJlYWQ7CiAgICAgaW50cHRyX3QgbV9sb2NrQ291
bnQ7CiAgICAgdW5zaWduZWQgbV9sb2NrRHJvcERlcHRoOwogICAgIGJvb2wgbV9zaG91bGRSZWxl
YXNlSGVhcEFjY2VzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1BsYXRmb3JtVGhyZWFkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QbGF0Zm9y
bVRocmVhZC5oCmluZGV4IGIwNjFlZTlkMTFjOTU3MTFmM2RlMjY2ZGViMDhiYzYyYzhiMDI0YjUu
LjU0MTk3ZTczYzg0MTJhODBmMzYxNDBjN2FkODZlYzc2NGZhYzI5MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1BsYXRmb3JtVGhyZWFkLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUGxhdGZvcm1UaHJlYWQuaApAQCAtNjAsMTkgKzYwLDQg
QEAgaW5saW5lIFBsYXRmb3JtVGhyZWFkIGN1cnJlbnRQbGF0Zm9ybVRocmVhZCgpCiAjZW5kaWYK
IH0KIAotI2lmIE9TKERBUldJTikKLWlubGluZSBib29sIHBsYXRmb3JtVGhyZWFkU2lnbmFsKFBs
YXRmb3JtVGhyZWFkIHBsYXRmb3JtVGhyZWFkLCBpbnQgc2lnbmFsTnVtYmVyKQotewotICAgIHB0
aHJlYWRfdCBwdGhyZWFkSUQgPSBwdGhyZWFkX2Zyb21fbWFjaF90aHJlYWRfbnAocGxhdGZvcm1U
aHJlYWQpOwotICAgIGludCBlcnJObyA9IHB0aHJlYWRfa2lsbChwdGhyZWFkSUQsIHNpZ25hbE51
bWJlcik7Ci0gICAgcmV0dXJuICFlcnJObzsgLy8gQSAwIGVyck5vIG1lYW5zIHN1Y2Nlc3MuCi19
Ci0jZWxpZiBVU0UoUFRIUkVBRFMpCi1pbmxpbmUgYm9vbCBwbGF0Zm9ybVRocmVhZFNpZ25hbChQ
bGF0Zm9ybVRocmVhZCBwdGhyZWFkSUQsIGludCBzaWduYWxOdW1iZXIpCi17Ci0gICAgaW50IGVy
ck5vID0gcHRocmVhZF9raWxsKHB0aHJlYWRJRCwgc2lnbmFsTnVtYmVyKTsKLSAgICByZXR1cm4g
IWVyck5vOyAvLyBBIDAgZXJyTm8gbWVhbnMgc3VjY2Vzcy4KLX0KLSNlbmRpZgotCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IDlkODZhYTE5YTkz
M2NlYTM4YWI1ZjAyMzE4NDQ1OWNiNjAxMGYzYjcuLjFlYzg3Zjk3MjQ0Yzc3NTI2NTgyZDg1NGQ1
YmQ1NzBkMmUyYjk0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtNjczLDcg
KzY3Myw3IEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVi
bGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVu
Yz4KICAgICB2b2lkIGxvZ0V2ZW50KENvZGVCbG9jayosIGNvbnN0IGNoYXIqIHN1bW1hcnksIGNv
bnN0IEZ1bmMmIGZ1bmMpOwogCi0gICAgc3RkOjpvcHRpb25hbDxQbGF0Zm9ybVRocmVhZD4gb3du
ZXJUaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX2FwaUxvY2stPm93bmVyVGhyZWFkKCk7IH0KKyAg
ICBzdGQ6Om9wdGlvbmFsPFRocmVhZElkZW50aWZpZXI+IG93bmVyVGhyZWFkKCkgY29uc3QgeyBy
ZXR1cm4gbV9hcGlMb2NrLT5vd25lclRocmVhZCgpOyB9CiAKICAgICBWTVRyYXBzJiB0cmFwcygp
IHsgcmV0dXJuIG1fdHJhcHM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk1UcmFwcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmNwcAppbmRleCA3ZDFhOWVmM2Q4MGFkNjE0NzdiYTY4MTEyMWJiMTU1OTZmMTA3YTM1Li5j
OThhM2RjY2FjMDJkMjgyMDhiODljZTlmZWY0NGVjMzIwZmRlMTU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcApAQCAtNDU1LDcgKzQ1NSw3IEBAIHZvaWQgVk1U
cmFwczo6U2lnbmFsU2VuZGVyOjpzZW5kKCkKICAgICAgICAgICAgIFZNJiB2bSA9ICptX3ZtOwog
ICAgICAgICAgICAgYXV0byBvcHRpb25hbE93bmVyVGhyZWFkID0gdm0ub3duZXJUaHJlYWQoKTsK
ICAgICAgICAgICAgIGlmIChvcHRpb25hbE93bmVyVGhyZWFkKSB7Ci0gICAgICAgICAgICAgICAg
cGxhdGZvcm1UaHJlYWRTaWduYWwob3B0aW9uYWxPd25lclRocmVhZC52YWx1ZSgpLCBTSUdVU1Ix
KTsKKyAgICAgICAgICAgICAgICBzaWduYWxUaHJlYWQob3B0aW9uYWxPd25lclRocmVhZC52YWx1
ZSgpLCBTSUdVU1IxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRpbmcuaAppbmRleCA0Y2QxNTkzZTgzMTczOTUwYjQyNDU1YTJlZTFmNzYxNWE4OWQ4NzE1
Li42YjU1OGIzZTFkNTE3ZTgxMGM1ZWE4ZjZiMmNhNDQwNWFjZjAxMmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcu
aApAQCAtNzksNiArNzksMTAgQEAgdm9pZCBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFs
KGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOwogCiBjb25zdCBjaGFyKiBub3JtYWxpemVUaHJlYWRO
YW1lKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOwogCisjaWYgVVNFKFBUSFJFQURTKQorYm9vbCBz
aWduYWxUaHJlYWQoVGhyZWFkSWRlbnRpZmllciwgaW50IHNpZ25hbE51bWJlcik7CisjZW5kaWYK
KwogI2lmIEhBVkUoUU9TX0NMQVNTRVMpCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRHbG9i
YWxNYXhRT1NDbGFzcyhxb3NfY2xhc3NfdCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgcW9zX2NsYXNz
X3QgYWRqdXN0ZWRRT1NDbGFzcyhxb3NfY2xhc3NfdCk7CkBAIC05Myw2ICs5NywxMCBAQCB1c2lu
ZyBXVEY6OmNoYW5nZVRocmVhZFByaW9yaXR5OwogdXNpbmcgV1RGOjpkZXRhY2hUaHJlYWQ7CiB1
c2luZyBXVEY6OndhaXRGb3JUaHJlYWRDb21wbGV0aW9uOwogCisjaWYgVVNFKFBUSFJFQURTKQor
dXNpbmcgV1RGOjpzaWduYWxUaHJlYWQ7CisjZW5kaWYKKwogI2lmIEhBVkUoUU9TX0NMQVNTRVMp
CiB1c2luZyBXVEY6OnNldEdsb2JhbE1heFFPU0NsYXNzOwogdXNpbmcgV1RGOjphZGp1c3RlZFFP
U0NsYXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3Bw
IGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCmluZGV4IDY0NjE2NGE1MzBk
Y2I2YTEwOTdiNjQ2MmJhNzYzMTU4NzNjM2FkMTcuLmY1Y2VlM2MxNzc4MmY2NmFmOWIwNGNjN2Q1
NmNhMWRhNWE2OTJkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJl
YWRzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTU5
LDYgKzU5LDEwIEBACiAjaW5jbHVkZSA8c3lzL3ByY3RsLmg+CiAjZW5kaWYKIAorI2lmICFPUyhE
QVJXSU4pCisjaW5jbHVkZSA8c2lnbmFsLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdURiB7CiAK
IGNsYXNzIFB0aHJlYWRTdGF0ZSB7CkBAIC0zMDcsNiArMzExLDE5IEBAIFRocmVhZElkZW50aWZp
ZXIgY3VycmVudFRocmVhZCgpCiAgICAgcmV0dXJuIGlkOwogfQogCitib29sIHNpZ25hbFRocmVh
ZChUaHJlYWRJZGVudGlmaWVyIHRocmVhZElELCBpbnQgc2lnbmFsTnVtYmVyKQoreworICAgIHB0
aHJlYWRfdCBwdGhyZWFkSGFuZGxlOworICAgIEFTU0VSVCh0aHJlYWRJRCk7CisgICAgeworICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIodGhyZWFkTWFwTXV0ZXgoKSk7CisgICAgICAgIHB0aHJl
YWRIYW5kbGUgPSBwdGhyZWFkSGFuZGxlRm9ySWRlbnRpZmllcldpdGhMb2NrQWxyZWFkeUhlbGQo
dGhyZWFkSUQpOworICAgICAgICBBU1NFUlQocHRocmVhZEhhbmRsZSk7CisgICAgfQorICAgIGlu
dCBlcnJObyA9IHB0aHJlYWRfa2lsbChwdGhyZWFkSGFuZGxlLCBzaWduYWxOdW1iZXIpOworICAg
IHJldHVybiAhZXJyTm87IC8vIEEgMCBlcnJObyBtZWFucyBzdWNjZXNzLgorfQorCiBNdXRleDo6
TXV0ZXgoKQogewogICAgIHB0aHJlYWRfbXV0ZXhhdHRyX3QgYXR0cjsK
</data>
<flag name="review"
          id="326836"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>