<?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>35537</bug_id>
          
          <creation_ts>2010-03-01 12:35:31 -0800</creation_ts>
          <short_desc>put_by_id does will incorrectly cache writes where a specific value exists, where at the point of caching the same value is being written.</short_desc>
          <delta_ts>2010-03-04 05:58:16 -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>PC</rep_platform>
          <op_sys>OS X 10.5</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>hamaji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>194767</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-03-01 12:35:31 -0800</bug_when>
    <thetext>When performing a put_by_id that is replacing a property already present on the object, there are three interesting cases regarding the state of the specific value:

(1) No specific value set – nothing to do, leave the structure in it&apos;s current state, can cache.
(2) A specific value was set, the new put is not of a specified value (i.e. function), or is of a different specific value – in these cases we need to perform a despecifying transition to clear the specific value in the structure, but having done so this is a normal property so as such we can again cache normally.
(3) A specific value was set, and we are overwriting with the same value – in these cases, leave the structure unchanged, but since a specific value is set we cannot cache this put (we would need the JIT to dynamically check the value being written matched).

Unfortunately, the current behaviour does not match this.  the checks for a specific value being present &amp; the value matching are combined in such a way that in case (2), above we will unnecessarily prevent the transition being cached, but in case (3) we will incorrectly fail to prevent caching.

The bug exposes itself if multiple puts of the same specific value are performed to a property, and erroneously the put is allowed to be cached by the JIT.  Method checks may be generated caching calls of this structure.  Subsequent puts performed from JIT code may write different values without triggering a despecify transition, and as such cached method checks will continue to pass, despite the value having changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194769</commentid>
    <comment_count>1</comment_count>
      <attachid>49737</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-03-01 12:38:10 -0800</bug_when>
    <thetext>Created attachment 49737
The patch

No performance impact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194772</commentid>
    <comment_count>2</comment_count>
      <attachid>49737</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-03-01 12:43:21 -0800</bug_when>
    <thetext>Comment on attachment 49737
The patch

&gt; +        //  (1) There is an existing specific value set, and we&apos;re overwriting with *the same value*.
&gt; +        //       * Do nothing â no need to despecify, but that means we can&apos;t cache (a cached
r+ but get rid of yer funny foreign characters :p

--Oliver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194820</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-03-01 14:15:07 -0800</bug_when>
    <thetext>fixed in r55379.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196024</commentid>
    <comment_count>4</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-03-04 05:58:16 -0800</bug_when>
    <thetext>Committed r55521: &lt;http://trac.webkit.org/changeset/55521&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49737</attachid>
            <date>2010-03-01 12:38:10 -0800</date>
            <delta_ts>2010-03-01 12:43:20 -0800</delta_ts>
            <desc>The patch</desc>
            <filename>patch.methodbug.txt</filename>
            <type>text/plain</type>
            <size>9471</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1MzcyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTAtMDMtMDEgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAzNTUzNyAtIHB1dF9ieV9pZCBkb2VzIHdp
bGwgaW5jb3JyZWN0bHkgY2FjaGUgd3JpdGVzIHdoZXJlIGEgc3BlY2lmaWMgdmFsdWUgZXhpc3Rz
LAorICAgICAgICAgICAgICAgICAgICB3aGVyZSBhdCB0aGUgcG9pbnQgb2YgY2FjaGluZyB0aGUg
c2FtZSB2YWx1ZSBpcyBiZWluZyB3cml0dGVuLgorCisgICAgICAgIFdoZW4gcGVyZm9ybWluZyBh
IHB1dF9ieV9pZCB0aGF0IGlzIHJlcGxhY2luZyBhIHByb3BlcnR5IGFscmVhZHkgcHJlc2VudCBv
biB0aGUgb2JqZWN0LAorICAgICAgICB0aGVyZSBhcmUgdGhyZWUgaW50ZXJlc3RpbmcgY2FzZXMg
cmVnYXJkaW5nIHRoZSBzdGF0ZSBvZiB0aGUgc3BlY2lmaWMgdmFsdWU6CisKKyAgICAgICAgKDEp
IE5vIHNwZWNpZmljIHZhbHVlIHNldCDigJMgbm90aGluZyB0byBkbywgbGVhdmUgdGhlIHN0cnVj
dHVyZSBpbiBpdCdzIGN1cnJlbnQgc3RhdGUsCisgICAgICAgICAgICBjYW4gY2FjaGUuCisgICAg
ICAgICgyKSBBIHNwZWNpZmljIHZhbHVlIHdhcyBzZXQsIHRoZSBuZXcgcHV0IGlzIG5vdCBvZiBh
IHNwZWNpZmllZCB2YWx1ZSAoaS5lLiBmdW5jdGlvbiksCisgICAgICAgICAgICBvciBpcyBvZiBh
IGRpZmZlcmVudCBzcGVjaWZpYyB2YWx1ZSDigJMgaW4gdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBw
ZXJmb3JtIGEgZGVzcGVjaWZ5aW5nCisgICAgICAgICAgICB0cmFuc2l0aW9uIHRvIGNsZWFyIHRo
ZSBzcGVjaWZpYyB2YWx1ZSBpbiB0aGUgc3RydWN0dXJlLCBidXQgaGF2aW5nIGRvbmUgc28gdGhp
cyBpcyBhCisgICAgICAgICAgICBub3JtYWwgcHJvcGVydHkgc28gYXMgc3VjaCB3ZSBjYW4gYWdh
aW4gY2FjaGUgbm9ybWFsbHkuCisgICAgICAgICgzKSBBIHNwZWNpZmljIHZhbHVlIHdhcyBzZXQs
IGFuZCB3ZSBhcmUgb3ZlcndyaXRpbmcgd2l0aCB0aGUgc2FtZSB2YWx1ZSDigJMgaW4gdGhlc2Ug
Y2FzZXMKKyAgICAgICAgICAgIGxlYXZlIHRoZSBzdHJ1Y3R1cmUgdW5jaGFuZ2VkLCBidXQgc2lu
Y2UgYSBzcGVjaWZpYyB2YWx1ZSBpcyBzZXQgd2UgY2Fubm90IGNhY2hlIHRoaXMKKyAgICAgICAg
ICAgIHB1dCAod2Ugd291bGQgbmVlZCB0aGUgSklUIHRvIGR5bmFtaWNhbGx5IGNoZWNrIHRoZSB2
YWx1ZSBiZWluZyB3cml0dGVuIG1hdGNoZWQpLgorCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRo
ZSBjdXJyZW50IGJlaGF2aW91ciBkb2VzIG5vdCBtYXRjaCB0aGlzLiAgdGhlIGNoZWNrcyBmb3Ig
YSBzcGVjaWZpYyB2YWx1ZQorICAgICAgICBiZWluZyBwcmVzZW50ICYgdGhlIHZhbHVlIG1hdGNo
aW5nIGFyZSBjb21iaW5lZCBpbiBzdWNoIGEgd2F5IHRoYXQgaW4gY2FzZSAoMiksIGFib3ZlIHdl
CisgICAgICAgIHdpbGwgdW5uZWNlc3NhcmlseSBwcmV2ZW50IHRoZSB0cmFuc2l0aW9uIGJlaW5n
IGNhY2hlZCwgYnV0IGluIGNhc2UgKDMpIHdlIHdpbGwgaW5jb3JyZWN0bHkKKyAgICAgICAgZmFp
bCB0byBwcmV2ZW50IGNhY2hpbmcuCisKKyAgICAgICAgVGhlIGJ1ZyBleHBvc2VzIGl0c2VsZiBp
ZiBtdWx0aXBsZSBwdXRzIG9mIHRoZSBzYW1lIHNwZWNpZmljIHZhbHVlIGFyZSBwZXJmb3JtZWQg
dG8gYQorICAgICAgICBwcm9wZXJ0eSwgYW5kIGVycm9uZW91c2x5IHRoZSBwdXQgaXMgYWxsb3dl
ZCB0byBiZSBjYWNoZWQgYnkgdGhlIEpJVC4gIE1ldGhvZCBjaGVja3MgbWF5IGJlCisgICAgICAg
IGdlbmVyYXRlZCBjYWNoaW5nIGNhbGxzIG9mIHRoaXMgc3RydWN0dXJlLiAgU3Vic2VxdWVudCBw
dXRzIHBlcmZvcm1lZCBmcm9tIEpJVCBjb2RlIG1heQorICAgICAgICB3cml0ZSBkaWZmZXJlbnQg
dmFsdWVzIHdpdGhvdXQgdHJpZ2dlcmluZyBhIGRlc3BlY2lmeSB0cmFuc2l0aW9uLCBhbmQgYXMg
c3VjaCBjYWNoZWQgbWV0aG9kCisgICAgICAgIGNoZWNrcyB3aWxsIGNvbnRpbnVlIHRvIHBhc3Ms
IGRlc3BpdGUgdGhlIHZhbHVlIGhhdmluZyBjaGFuZ2VkLgorCisgICAgICAgICogcnVudGltZS9K
U09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwpOgor
CiAyMDEwLTAzLTAxICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmgJKHJldmlzaW9uIDU1MzI0KQorKysgSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MzYsMTIgKzQzNiwyMCBAQCBpbmxp
bmUgdm9pZCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoCiAgICAgICAgIEpTQ2VsbCogY3Vy
cmVudFNwZWNpZmljRnVuY3Rpb247CiAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBtX3N0cnVjdHVy
ZS0+Z2V0KHByb3BlcnR5TmFtZSwgY3VycmVudEF0dHJpYnV0ZXMsIGN1cnJlbnRTcGVjaWZpY0Z1
bmN0aW9uKTsKICAgICAgICAgaWYgKG9mZnNldCAhPSBXVEY6Om5vdEZvdW5kKSB7CisgICAgICAg
ICAgICAvLyBJZiB0aGVyZSBpcyBjdXJyZW50bHkgYSBzcGVjaWZpYyBmdW5jdGlvbiwgYW5kIHRo
ZXJlIG5vdyBlaXRoZXIgaXNuJ3QsCisgICAgICAgICAgICAvLyBvciB0aGUgbmV3IHZhbHVlIGlz
IGRpZmZlcmVudCwgdGhlbiBkZXNwZWNpZnkuCiAgICAgICAgICAgICBpZiAoY3VycmVudFNwZWNp
ZmljRnVuY3Rpb24gJiYgKHNwZWNpZmljRnVuY3Rpb24gIT0gY3VycmVudFNwZWNpZmljRnVuY3Rp
b24pKQogICAgICAgICAgICAgICAgIG1fc3RydWN0dXJlLT5kZXNwZWNpZnlEaWN0aW9uYXJ5RnVu
Y3Rpb24ocHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgIGlmIChjaGVja1JlYWRPbmx5ICYmIGN1
cnJlbnRBdHRyaWJ1dGVzICYgUmVhZE9ubHkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgcHV0RGlyZWN0T2Zmc2V0KG9mZnNldCwgdmFsdWUpOwotICAgICAgICAgICAgaWYg
KCFzcGVjaWZpY0Z1bmN0aW9uICYmICFjdXJyZW50U3BlY2lmaWNGdW5jdGlvbikKKyAgICAgICAg
ICAgIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBvYmplY3RzIHN0cnVjdHVyZSBvbmx5IGhhcyBhIHNw
ZWNpZmljIHZhbHVlIHNldCBpZiBwcmV2aW91c2x5IHRoZXJlCisgICAgICAgICAgICAvLyBoYWQg
YmVlbiBvbmUgc2V0LCBhbmQgaWYgdGhlIG5ldyB2YWx1ZSBiZWluZyBzcGVjaWZpZWQgaXMgdGhl
IHNhbWUgKG90aGVyd2lzZSB3ZSB3b3VsZAorICAgICAgICAgICAgLy8gaGF2ZSBkZXNwZWNpZmll
ZCwgYWJvdmUpLiAgU28sIGlmIGN1cnJlbnRTcGVjaWZpY0Z1bmN0aW9uIGlzIG5vdCBzZXQsIG9y
IGlmIHRoZSBuZXcKKyAgICAgICAgICAgIC8vIHZhbHVlIGlzIGRpZmZlcmVudCAob3IgdGhlcmUg
aXMgbm8gbmV3IHZhbHVlKSwgdGhlbiB0aGUgc2xvdCBub3cgaGFzIG5vIHZhbHVlIC0gYW5kCisg
ICAgICAgICAgICAvLyBhcyBzdWNoIGl0IGlzIGNhY2hhYmxlLgorICAgICAgICAgICAgLy8gSWYg
dGhlcmUgd2FzIHByZXZpb3VzbHkgYSB2YWx1ZSwgYW5kIHRoZSBuZXcgdmFsdWUgaXMgdGhlIHNh
bWUsIHRoZW4gd2UgY2Fubm90IGNhY2hlLgorICAgICAgICAgICAgaWYgKCFjdXJyZW50U3BlY2lm
aWNGdW5jdGlvbiB8fCAoc3BlY2lmaWNGdW5jdGlvbiAhPSBjdXJyZW50U3BlY2lmaWNGdW5jdGlv
bikpCiAgICAgICAgICAgICAgICAgc2xvdC5zZXRFeGlzdGluZ1Byb3BlcnR5KHRoaXMsIG9mZnNl
dCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTQ2OCw3ICs0NzYsOCBAQCBp
bmxpbmUgdm9pZCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoCiAgICAgICAgIEFTU0VSVChv
ZmZzZXQgPCBzdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpOwogICAgICAgICBz
ZXRTdHJ1Y3R1cmUoc3RydWN0dXJlLnJlbGVhc2UoKSk7CiAgICAgICAgIHB1dERpcmVjdE9mZnNl
dChvZmZzZXQsIHZhbHVlKTsKLSAgICAgICAgLy8gU2VlIGNvbW1lbnQgb24gc2V0TmV3UHJvcGVy
dHkgY2FsbCBiZWxvdy4KKyAgICAgICAgLy8gVGhpcyBpcyBhIG5ldyBwcm9wZXJ0eTsgdHJhbnNp
dGlvbnMgd2l0aCBzcGVjaWZpYyB2YWx1ZXMgYXJlIG5vdCBjdXJyZW50bHkgY2FjaGFibGUsCisg
ICAgICAgIC8vIHNvIGxlYXZlIHRoZSBzbG90IGluIGFuIHVuY2FjaGFibGUgc3RhdGUuCiAgICAg
ICAgIGlmICghc3BlY2lmaWNGdW5jdGlvbikKICAgICAgICAgICAgIHNsb3Quc2V0TmV3UHJvcGVy
dHkodGhpcywgb2Zmc2V0KTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDgxLDE0ICs0OTAsMjggQEAg
aW5saW5lIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKAogICAgICAgICBpZiAoY2hl
Y2tSZWFkT25seSAmJiBjdXJyZW50QXR0cmlidXRlcyAmIFJlYWRPbmx5KQogICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgIGlmIChjdXJyZW50U3BlY2lmaWNGdW5jdGlvbiAmJiAoc3BlY2lm
aWNGdW5jdGlvbiAhPSBjdXJyZW50U3BlY2lmaWNGdW5jdGlvbikpIHsKKyAgICAgICAgLy8gVGhl
cmUgYXJlIHRocmVlIHBvc3NpYmlsaXRpZXMgaGVyZToKKyAgICAgICAgLy8gICgxKSBUaGVyZSBp
cyBhbiBleGlzdGluZyBzcGVjaWZpYyB2YWx1ZSBzZXQsIGFuZCB3ZSdyZSBvdmVyd3JpdGluZyB3
aXRoICp0aGUgc2FtZSB2YWx1ZSouCisgICAgICAgIC8vICAgICAgICogRG8gbm90aGluZyDigJMg
bm8gbmVlZCB0byBkZXNwZWNpZnksIGJ1dCB0aGF0IG1lYW5zIHdlIGNhbid0IGNhY2hlIChhIGNh
Y2hlZAorICAgICAgICAvLyAgICAgICAgIHB1dCBjb3VsZCB3cml0ZSBhIGRpZmZlcmVudCB2YWx1
ZSkuIExlYXZlIHRoZSBzbG90IGluIGFuIHVuY2FjaGFibGUgc3RhdGUuCisgICAgICAgIC8vICAo
MikgVGhlcmUgaXMgYSBzcGVjaWZpYyB2YWx1ZSBjdXJyZW50bHkgc2V0LCBidXQgd2UncmUgd3Jp
dGluZyBhIGRpZmZlcmVudCB2YWx1ZS4KKyAgICAgICAgLy8gICAgICAgKiBGaXJzdCwgd2UgaGF2
ZSB0byBkZXNwZWNpZnkuICBIYXZpbmcgZG9uZSBzbywgdGhpcyBpcyBub3cgYSByZWd1bGFyIHNs
b3QKKyAgICAgICAgLy8gICAgICAgICB3aXRoIG5vIHNwZWNpZmljIHZhbHVlLCBzbyBnbyBhaGVh
ZCAmIGNhY2hlIGxpa2Ugbm9ybWFsLgorICAgICAgICAvLyAgKDMpIE5vcm1hbCBjYXNlLCB0aGVy
ZSBpcyBubyBzcGVjaWZpYyB2YWx1ZSBzZXQuCisgICAgICAgIC8vICAgICAgICogR28gYWhlYWQg
JiBjYWNoZSBsaWtlIG5vcm1hbC4KKyAgICAgICAgaWYgKGN1cnJlbnRTcGVjaWZpY0Z1bmN0aW9u
KSB7CisgICAgICAgICAgICAvLyBjYXNlICgxKSBEbyB0aGUgcHV0LCB0aGVuIHJldHVybiBsZWF2
aW5nIHRoZSBzbG90IHVuY2FjaGFibGUuCisgICAgICAgICAgICBpZiAoc3BlY2lmaWNGdW5jdGlv
biA9PSBjdXJyZW50U3BlY2lmaWNGdW5jdGlvbikgeworICAgICAgICAgICAgICAgIHB1dERpcmVj
dE9mZnNldChvZmZzZXQsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAvLyBjYXNlICgyKSBEZXNwZWNpZnksIGZhbGwgdGhyb3VnaCB0
byAoMykuCiAgICAgICAgICAgICBzZXRTdHJ1Y3R1cmUoU3RydWN0dXJlOjpkZXNwZWNpZnlGdW5j
dGlvblRyYW5zaXRpb24obV9zdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSkpOwotICAgICAgICAgICAg
cHV0RGlyZWN0T2Zmc2V0KG9mZnNldCwgdmFsdWUpOwotICAgICAgICAgICAgLy8gRnVuY3Rpb24g
dHJhbnNpdGlvbnMgYXJlIG5vdCBjdXJyZW50bHkgY2FjaGFibGUsIHNvIGxlYXZlIHRoZSBzbG90
IGluIGFuIHVuY2FjaGFibGUgc3RhdGUuCi0gICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgcHV0RGlyZWN0T2Zmc2V0KG9mZnNldCwgdmFsdWUpOworCisgICAgICAgIC8vIGNh
c2UgKDMpIHNldCB0aGUgc2xvdCwgZG8gdGhlIHB1dCwgcmV0dXJuLgogICAgICAgICBzbG90LnNl
dEV4aXN0aW5nUHJvcGVydHkodGhpcywgb2Zmc2V0KTsKKyAgICAgICAgcHV0RGlyZWN0T2Zmc2V0
KG9mZnNldCwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MTAsNyArNTMz
LDggQEAgaW5saW5lIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKAogICAgIEFTU0VS
VChvZmZzZXQgPCBzdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpOwogICAgIHNl
dFN0cnVjdHVyZShzdHJ1Y3R1cmUucmVsZWFzZSgpKTsKICAgICBwdXREaXJlY3RPZmZzZXQob2Zm
c2V0LCB2YWx1ZSk7Ci0gICAgLy8gRnVuY3Rpb24gdHJhbnNpdGlvbnMgYXJlIG5vdCBjdXJyZW50
bHkgY2FjaGFibGUsIHNvIGxlYXZlIHRoZSBzbG90IGluIGFuIHVuY2FjaGFibGUgc3RhdGUuCisg
ICAgLy8gVGhpcyBpcyBhIG5ldyBwcm9wZXJ0eTsgdHJhbnNpdGlvbnMgd2l0aCBzcGVjaWZpYyB2
YWx1ZXMgYXJlIG5vdCBjdXJyZW50bHkgY2FjaGFibGUsCisgICAgLy8gc28gbGVhdmUgdGhlIHNs
b3QgaW4gYW4gdW5jYWNoYWJsZSBzdGF0ZS4KICAgICBpZiAoIXNwZWNpZmljRnVuY3Rpb24pCiAg
ICAgICAgIHNsb3Quc2V0TmV3UHJvcGVydHkodGhpcywgb2Zmc2V0KTsKIH0KSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDU1MzcyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDMtMDEgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91
Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJ1ZyAzNTUzNyAtIHB1dF9ieV9pZCBkb2VzIHdpbGwgaW5jb3JyZWN0bHkgY2FjaGUg
d3JpdGVzIHdoZXJlIGEgc3BlY2lmaWMgdmFsdWUgZXhpc3RzLAorICAgICAgICAgICAgICAgICAg
ICB3aGVyZSBhdCB0aGUgcG9pbnQgb2YgY2FjaGluZyB0aGUgc2FtZSB2YWx1ZSBpcyBiZWluZyB3
cml0dGVuLgorCisgICAgICAgIEFkZCB0ZXN0IGNhc2UuCisKKyAgICAgICAgKiBmYXN0L2pzL21l
dGhvZC1jaGVjay1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMv
bWV0aG9kLWNoZWNrLmpzOgorICAgICAgICAoYWRkT25lKToKKyAgICAgICAgKGFkZE9uZUh1bmRy
ZWQpOgorICAgICAgICAodG90YWxpemVyLm1ha2VDYWxsKToKKwogMjAxMC0wMi0yNyAgSWx5YSBU
aWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
UGF2ZWwgRmVsZG1hbi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvbWV0aG9kLWNoZWNrLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL21ldGhvZC1jaGVj
ay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU1MzI0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9t
ZXRob2QtY2hlY2stZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOSBAQAot
VGhpcyB0ZXN0IHlpZWxkcyBQQVNTLCBpZiBtYWxsb2MgZG9lcyBub3QgcmV1c2UgdGhlIG1lbW9y
eSBhZGRyZXNzIGZvciB0aGUgc3RydWN0dXJlIG9mIFN0cmluZyBwcm90b3R5cGUKK1Rlc3QgbWV0
aG9kLWNoZWNrIHJlbGF0ZWQgYnVncwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAor
UEFTUyB0b3RhbCBpcyAyMDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvbWV0aG9k
LWNoZWNrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3Rz
L21ldGhvZC1jaGVjay5qcwkocmV2aXNpb24gNTUzMjQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pz
L3NjcmlwdC10ZXN0cy9tZXRob2QtY2hlY2suanMJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSwx
MCBAQAogZGVzY3JpcHRpb24oCi0iVGhpcyB0ZXN0IHlpZWxkcyBQQVNTLCBpZiBtYWxsb2MgZG9l
cyBub3QgcmV1c2UgdGhlIG1lbW9yeSBhZGRyZXNzIGZvciB0aGUgc3RydWN0dXJlIG9mIFN0cmlu
ZyBwcm90b3R5cGUiCisiVGVzdCBtZXRob2QtY2hlY2sgcmVsYXRlZCBidWdzIgogKTsKIAogZnVu
Y3Rpb24gZnVuYzIoKSB7IH0KIAorLy8gVGhpcyB0ZXN0IHlpZWxkcyBQQVNTLCBpZiBtYWxsb2Mg
ZG9lcyBub3QgcmV1c2UgdGhlIG1lbW9yeSBhZGRyZXNzIGZvciB0aGUgc3RydWN0dXJlIG9mIFN0
cmluZyBwcm90b3R5cGUKIGZ1bmN0aW9uIGZ1bmMoKQogewogICAgIFN0cmluZy5wcm90b3R5cGUu
YSA9IGZ1bmN0aW9uKCkgeyB9CkBAIC0zMCw0ICszMSwyNiBAQCBmdW5jdGlvbiBmdW5jKCkKIGZ1
bmMoKQogZnVuYygpCiAKKy8vIFRlc3QgdGhhdCBtZXRob2QgY2FjaGluZyBjb3JyZWN0bHkgaW52
YWxpZGF0ZXMgKGRvZXNuJ3QgaW5jb3JyZWN0bHkgY29udGludWUgdG8gY2FsbCBhIHByZXZpb3Vz
bHkgY2FjaGVkIGZ1bmN0aW9uKS4KK3ZhciB0b3RhbCA9IDA7CitmdW5jdGlvbiBhZGRPbmUoKQor
eworCSsrdG90YWw7Cit9CitmdW5jdGlvbiBhZGRPbmVIdW5kcmVkKCkKK3sKKwl0b3RhbCs9MTAw
OworfQordmFyIHRvdGFsaXplciA9IHsKKyAgICBtYWtlQ2FsbDogZnVuY3Rpb24oY2FsbGJhY2sp
CisgICAgeworICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgICAgIHRoaXMu
Y2FsbGJhY2soKTsKKyAgICB9Cit9OworZm9yICh2YXIgaT0wOyBpPDEwMDsgKytpKQorICAgIHRv
dGFsaXplci5tYWtlQ2FsbChhZGRPbmUpOwordG90YWxpemVyLm1ha2VDYWxsKGFkZE9uZUh1bmRy
ZWQpOworc2hvdWxkQmUoJ3RvdGFsJywgJzIwMCcpOworCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsK
</data>
<flag name="review"
          id="32687"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>