<?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>22393</bug_id>
          
          <creation_ts>2008-11-20 21:30:19 -0800</creation_ts>
          <short_desc>Segfault when caching property accesses to primitive cells.</short_desc>
          <delta_ts>2008-12-18 09:45:56 -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>Mac</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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>99601</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-11-20 21:30:19 -0800</bug_when>
    <thetext>Test case cases segfault on ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99602</commentid>
    <comment_count>1</comment_count>
      <attachid>25335</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-11-20 21:31:23 -0800</bug_when>
    <thetext>Created attachment 25335
Test file (1/2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99604</commentid>
    <comment_count>2</comment_count>
      <attachid>25336</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-11-20 21:32:03 -0800</bug_when>
    <thetext>Created attachment 25336
Test file (2/2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99608</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-11-20 21:39:08 -0800</bug_when>
    <thetext>The bug can be circumvented by adding an isObject(baseValue) check in tryCTICacheGetByID.  I have not tested whether the problem also exists in the non-JIT code path.

When this is fixed, cti_op_get_by_id_proto_list should also be updated (this currently is preventing polymorphic caching of prototype accesses, since allowing this caused a test failure in an existing Layout test).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99611</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-11-20 21:44:57 -0800</bug_when>
    <thetext>Comments from Darin&apos;s original review of the polymorphic prototype list caching code:

&gt; &gt; +    if (baseValue-&gt;isObject() &amp;&amp;
&gt; &gt; +        slot.isCacheable() &amp;&amp;
&gt; &gt; +        !asCell(baseValue)-&gt;structure()-&gt;isDictionary() &amp;&amp;
&gt; &gt; +        slot.slotBase() == asCell(baseValue)-&gt;structure()-&gt;prototypeForLookup(callFrame)) {
&gt; 
&gt; We normally try to format these with the operators at the starts of lines
&gt; instead of the ends -- I think it makes things read a little bit clearer.
&gt; 
&gt; Those two places where you call asCell, I think I&apos;d prefer asObject, because
&gt; you&apos;ve already established it&apos;s an object, and it&apos;s possible that we might some
&gt; day implement an operation like structure() slightly more efficiently for
&gt; JSObject than a JSCell. OK, it&apos;s not a realistic possibility, but still I like
&gt; types to be as specific as possible in case that helps with optimization later.
&gt; 
&gt; &gt; +        JSCell* baseCell = asCell(baseValue);
&gt; 
&gt; Same thought here.
&gt; 
&gt; I also think that if the values are worth putting into local variables for the
&gt; code, maybe it&apos;s worth using a nested if and using the local variables in the
&gt; if conditional too.

This may all no longer be relevant, assuming caching of accesses to cell primitives is fixed, since the check at the top of this can then be !JSImmediate::isImmediate(baseValue).  Repasted here incase these comments provide useful guidance in refactoring the code, post bug fix.

&gt; &gt; +        // Heavy access to a prototype is a good indication that it&apos;s not being
&gt; &gt; +        // used as a dictionary.
&gt; 
&gt; Great comment, but I don&apos;t understand how the single call here indicates &quot;heavy
&gt; use&quot;. You might want to word it slightly differently to make that clearer.

Not *strictly* related to this bug as such ;-) , but a comment from Darin in this area of the code.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99618</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-11-20 22:30:19 -0800</bug_when>
    <thetext>Hrrmmmm, the line &quot;JSObject* slotBaseObject = asObject(slot.slotBase());&quot; is starting to look fishy to me.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102862</commentid>
    <comment_count>6</comment_count>
      <attachid>26114</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-12-17 23:13:46 -0800</bug_when>
    <thetext>Created attachment 26114
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102863</commentid>
    <comment_count>7</comment_count>
      <attachid>26114</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-12-17 23:21:49 -0800</bug_when>
    <thetext>Comment on attachment 26114
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102902</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-12-18 09:45:56 -0800</bug_when>
    <thetext>Committed revision 39374.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>25335</attachid>
            <date>2008-11-20 21:31:23 -0800</date>
            <delta_ts>2008-11-20 21:31:23 -0800</delta_ts>
            <desc>Test file (1/2)</desc>
            <filename>constructor-attributes-reduced.html</filename>
            <type>text/plain</type>
            <size>368</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgo8aHRtbD4KPGhl
YWQ+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cjwv
aGVhZD4KPGJvZHk+CjxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgo8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb25zdHJ1Y3Rvci1hdHRyaWJ1dGVzLXJlZHVj
ZWQuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>25336</attachid>
            <date>2008-11-20 21:32:03 -0800</date>
            <delta_ts>2008-11-20 21:32:03 -0800</delta_ts>
            <desc>Test file (2/2)</desc>
            <filename>constructor-attributes-reduced.js</filename>
            <type>text/plain</type>
            <size>1518</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">ZGVzY3JpcHRpb24oCiJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgY29uc3RydWN0b3IgcHJvcGVydGll
cyBhcmUgbm90IGVudW1lcmF0YWJsZSwgYnV0IGFyZSB3cml0YWJsZSBkZWxldGFibGUuIgopOwoK
ZnVuY3Rpb24gY2FuRW51bShvYmplY3QsIHByb3BlcnR5TmFtZSkKewogICAgZm9yIChwcm9wIGlu
IG9iamVjdCkKICAgICAgICBpZiAocHJvcCA9PSBwcm9wZXJ0eU5hbWUpCiAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgcmV0dXJuIGZhbHNlOwp9CgpmdW5jdGlvbiBjaGVja0NvbnN0cnVjdG9y
KGV4cHJlc3Npb24pCnsKLy8gICAgc2hvdWxkQmUoZXhwcmVzc2lvbiArICIuaGFzT3duUHJvcGVy
dHkoJ2NvbnN0cnVjdG9yJykiLCAidHJ1ZSIpOwovLyAgICBzaG91bGRCZSgiY2FuRW51bSgiICsg
ZXhwcmVzc2lvbiArICIsICdjb25zdHJ1Y3RvcicpIiwgImZhbHNlIik7Ci8vICAgIHNob3VsZEJl
KCJ4ID0gIiArIGV4cHJlc3Npb24gKyAiOyB4LmNvbnN0cnVjdG9yID0gNDsgeC5jb25zdHJ1Y3Rv
ciIsICI0Iik7CiAgICBzaG91bGRCZSgieCA9ICIgKyBleHByZXNzaW9uICsgIjsgZGVsZXRlIHgu
Y29uc3RydWN0b3I7IHguaGFzT3duUHJvcGVydHkoJ2NvbnN0cnVjdG9yJykiLCAiZmFsc2UiKTsK
fQoKLy9jaGVja0NvbnN0cnVjdG9yKCIoZnVuY3Rpb24gKCkgeyB9KS5wcm90b3R5cGUiKTsKLy9m
dW5jdGlvbiBkZWNsYXJlZEZ1bmN0aW9uKCkgeyB9Ci8vY2hlY2tDb25zdHJ1Y3RvcigiZGVjbGFy
ZWRGdW5jdGlvbi5wcm90b3R5cGUiKTsKLy9jaGVja0NvbnN0cnVjdG9yKCIobmV3IEZ1bmN0aW9u
KS5wcm90b3R5cGUiKTsKCi8vY2hlY2tDb25zdHJ1Y3RvcigiQXJyYXkucHJvdG90eXBlIik7Ci8v
Y2hlY2tDb25zdHJ1Y3RvcigiQm9vbGVhbi5wcm90b3R5cGUiKTsKLy9jaGVja0NvbnN0cnVjdG9y
KCJEYXRlLnByb3RvdHlwZSIpOwovL2NoZWNrQ29uc3RydWN0b3IoIkVycm9yLnByb3RvdHlwZSIp
OwovL2NoZWNrQ29uc3RydWN0b3IoIkV2YWxFcnJvci5wcm90b3R5cGUiKTsKLy9jaGVja0NvbnN0
cnVjdG9yKCJGdW5jdGlvbi5wcm90b3R5cGUiKTsKLy9jaGVja0NvbnN0cnVjdG9yKCJOdW1iZXIu
cHJvdG90eXBlIik7Ci8vY2hlY2tDb25zdHJ1Y3RvcigiT2JqZWN0LnByb3RvdHlwZSIpOwovL2No
ZWNrQ29uc3RydWN0b3IoIlJhbmdlRXJyb3IucHJvdG90eXBlIik7Ci8vY2hlY2tDb25zdHJ1Y3Rv
cigiUmVmZXJlbmNlRXJyb3IucHJvdG90eXBlIik7Ci8vY2hlY2tDb25zdHJ1Y3RvcigiUmVnRXhw
LnByb3RvdHlwZSIpOwpjaGVja0NvbnN0cnVjdG9yKCJTdHJpbmcucHJvdG90eXBlIik7Ci8vY2hl
Y2tDb25zdHJ1Y3RvcigiU3ludGF4RXJyb3IucHJvdG90eXBlIik7Ci8vY2hlY2tDb25zdHJ1Y3Rv
cigiVHlwZUVycm9yLnByb3RvdHlwZSIpOwovL2NoZWNrQ29uc3RydWN0b3IoIlVSSUVycm9yLnBy
b3RvdHlwZSIpOwoKY2hlY2tDb25zdHJ1Y3RvcigiZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycp
Iik7Cgp2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26114</attachid>
            <date>2008-12-17 23:13:46 -0800</date>
            <delta_ts>2008-12-17 23:21:49 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch-primitive-property-access.txt</filename>
            <type>text/plain</type>
            <size>9621</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM5MzcxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDgtMTItMTcgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEZpeGVkIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjM5MworICAgICAgICBTZWdmYXVsdCB3aGVuIGNhY2hpbmcgcHJv
cGVydHkgYWNjZXNzZXMgdG8gcHJpbWl0aXZlIGNlbGxzLgorICAgICAgICAKKyAgICAgICAgQ2hh
bmdlZCBzb21lIGFzT2JqZWN0IGNhc3RzIHRvIGFzQ2VsbCBjYXN0cyBpbiBjYXNlcyB3aGVyZSBh
IHByaW1pdGl2ZQorICAgICAgICB2YWx1ZSBtYXkgYmUgYSBjZWxsIGFuZCBub3QgYW4gb2JqZWN0
LgorICAgICAgICAKKyAgICAgICAgUmUtZW5hYmxlZCBwcm9wZXJ0eSBjYWNoaW5nIGZvciBwcmlt
aXRpdmVzIGluIGNhc2VzIHdoZXJlIGl0IGhhZCBiZWVuCisgICAgICAgIGRpc2FibGVkIGJlY2F1
c2Ugb2YgdGhpcyBidWcuCisgICAgICAgIAorICAgICAgICBVcGRhdGVkIGEgY29tbWVudCB0byBi
ZXR0ZXIgZXhwbGFpbiBzb21ldGhpbmcgRGFyaW4gdGhvdWdodCBuZWVkZWQKKyAgICAgICAgZXhw
bGFpbmluZyBpbiBhbiBvbGQgcGF0Y2ggcmV2aWV3LgorCisgICAgICAgICogaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpjb3VudFByb3RvdHlwZUNoYWluRW50cmll
c0FuZENoZWNrRm9yUHJveGllcyk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp0cnlDYWNo
ZUdldEJ5SUQpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6dHJ5Q1RJQ2FjaGVHZXRCeUlE
KToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmN0aV9vcF9nZXRfYnlfaWRfc2VsZl9mYWls
KToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlz
dCk6CisKIDIwMDgtMTItMTcgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENhbWVyb24gWndhcmljaC4KSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDM5MzcwKQor
KysgSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzE0LDExICsxMzE0LDExIEBAIE5FVkVSX0lOTElORSB2b2lkIEludGVycHJldGVy
Ojp1bmNhY2hlUHUKIAogc3RhdGljIHNpemVfdCBjb3VudFByb3RvdHlwZUNoYWluRW50cmllc0Fu
ZENoZWNrRm9yUHJveGllcyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSogYmFzZVZhbHVl
LCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgSlNPYmplY3QqIG8gPSBhc09iamVj
dChiYXNlVmFsdWUpOworICAgIEpTQ2VsbCogY2VsbCA9IGFzQ2VsbChiYXNlVmFsdWUpOwogICAg
IHNpemVfdCBjb3VudCA9IDA7CiAKLSAgICB3aGlsZSAoc2xvdC5zbG90QmFzZSgpICE9IG8pIHsK
LSAgICAgICAgSlNWYWx1ZSogdiA9IG8tPnN0cnVjdHVyZSgpLT5wcm90b3R5cGVGb3JMb29rdXAo
Y2FsbEZyYW1lKTsKKyAgICB3aGlsZSAoc2xvdC5zbG90QmFzZSgpICE9IGNlbGwpIHsKKyAgICAg
ICAgSlNWYWx1ZSogdiA9IGNlbGwtPnN0cnVjdHVyZSgpLT5wcm90b3R5cGVGb3JMb29rdXAoY2Fs
bEZyYW1lKTsKIAogICAgICAgICAvLyBJZiB3ZSBkaWRuJ3QgZmluZCBzbG90QmFzZSBpbiBiYXNl
VmFsdWUncyBwcm90b3R5cGUgY2hhaW4sIHRoZW4gYmFzZVZhbHVlCiAgICAgICAgIC8vIG11c3Qg
YmUgYSBwcm94eSBmb3IgYW5vdGhlciBvYmplY3QuCkBAIC0xMzI2LDE0ICsxMzI2LDE0IEBAIHN0
YXRpYyBzaXplX3QgY291bnRQcm90b3R5cGVDaGFpbkVudHJpZXMKICAgICAgICAgaWYgKHYtPmlz
TnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgbyA9IGFzT2JqZWN0KHYp
OworICAgICAgICBjZWxsID0gYXNDZWxsKHYpOwogCi0gICAgICAgIC8vIEhlYXZ5IGFjY2VzcyB0
byBhIHByb3RvdHlwZSBpcyBhIGdvb2QgaW5kaWNhdGlvbiB0aGF0IGl0J3Mgbm90IGJlaW5nCi0g
ICAgICAgIC8vIHVzZWQgYXMgYSBkaWN0aW9uYXJ5LgotICAgICAgICBpZiAoby0+c3RydWN0dXJl
KCktPmlzRGljdGlvbmFyeSgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiB0cmFu
c2l0aW9uID0gU3RydWN0dXJlOjpmcm9tRGljdGlvbmFyeVRyYW5zaXRpb24oby0+c3RydWN0dXJl
KCkpOwotICAgICAgICAgICAgby0+c2V0U3RydWN0dXJlKHRyYW5zaXRpb24ucmVsZWFzZSgpKTsK
LSAgICAgICAgICAgIGFzT2JqZWN0KGJhc2VWYWx1ZSktPnN0cnVjdHVyZSgpLT5zZXRDYWNoZWRQ
cm90b3R5cGVDaGFpbigwKTsKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgYWNjZXNzaW5nIGEgcHJv
dG90eXBlIGluIGEgbG9vcCwgaXQncyBhIGdvb2QgYmV0IHRoYXQgaXQKKyAgICAgICAgLy8gc2hv
dWxkIG5vdCBiZSB0cmVhdGVkIGFzIGEgZGljdGlvbmFyeS4KKyAgICAgICAgaWYgKGNlbGwtPnN0
cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkgeworICAgICAgICAgICAgUmVmUHRyPFN0cnVjdHVy
ZT4gdHJhbnNpdGlvbiA9IFN0cnVjdHVyZTo6ZnJvbURpY3Rpb25hcnlUcmFuc2l0aW9uKGNlbGwt
PnN0cnVjdHVyZSgpKTsKKyAgICAgICAgICAgIGFzT2JqZWN0KGNlbGwpLT5zZXRTdHJ1Y3R1cmUo
dHJhbnNpdGlvbi5yZWxlYXNlKCkpOworICAgICAgICAgICAgY2VsbC0+c3RydWN0dXJlKCktPnNl
dENhY2hlZFByb3RvdHlwZUNoYWluKDApOwogICAgICAgICB9CiAKICAgICAgICAgKytjb3VudDsK
QEAgLTE0MDcsOCArMTQwNyw4IEBAIE5FVkVSX0lOTElORSB2b2lkIEludGVycHJldGVyOjp0cnlD
YWNoZUcKIAogICAgICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9IGFzT2JqZWN0KHNsb3Quc2xv
dEJhc2UoKSk7CiAKLSAgICAgICAgLy8gSGVhdnkgYWNjZXNzIHRvIGEgcHJvdG90eXBlIGlzIGEg
Z29vZCBpbmRpY2F0aW9uIHRoYXQgaXQncyBub3QgYmVpbmcKLSAgICAgICAgLy8gdXNlZCBhcyBh
IGRpY3Rpb25hcnkuCisgICAgICAgIC8vIFNpbmNlIHdlJ3JlIGFjY2Vzc2luZyBhIHByb3RvdHlw
ZSBpbiBhIGxvb3AsIGl0J3MgYSBnb29kIGJldCB0aGF0IGl0CisgICAgICAgIC8vIHNob3VsZCBu
b3QgYmUgdHJlYXRlZCBhcyBhIGRpY3Rpb25hcnkuCiAgICAgICAgIGlmIChiYXNlT2JqZWN0LT5z
dHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxTdHJ1Y3R1
cmU+IHRyYW5zaXRpb24gPSBTdHJ1Y3R1cmU6OmZyb21EaWN0aW9uYXJ5VHJhbnNpdGlvbihiYXNl
T2JqZWN0LT5zdHJ1Y3R1cmUoKSk7CiAgICAgICAgICAgICBiYXNlT2JqZWN0LT5zZXRTdHJ1Y3R1
cmUodHJhbnNpdGlvbi5yZWxlYXNlKCkpOwpAQCAtNDE3OCwxMiArNDE3OCwxMiBAQCBORVZFUl9J
TkxJTkUgdm9pZCBJbnRlcnByZXRlcjo6dHJ5Q1RJQ2FjCiAKICAgICAgICAgSlNPYmplY3QqIHNs
b3RCYXNlT2JqZWN0ID0gYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKTsKIAotICAgICAgICAvLyBI
ZWF2eSBhY2Nlc3MgdG8gYSBwcm90b3R5cGUgaXMgYSBnb29kIGluZGljYXRpb24gdGhhdCBpdCdz
IG5vdCBiZWluZwotICAgICAgICAvLyB1c2VkIGFzIGEgZGljdGlvbmFyeS4KKyAgICAgICAgLy8g
U2luY2Ugd2UncmUgYWNjZXNzaW5nIGEgcHJvdG90eXBlIGluIGEgbG9vcCwgaXQncyBhIGdvb2Qg
YmV0IHRoYXQgaXQKKyAgICAgICAgLy8gc2hvdWxkIG5vdCBiZSB0cmVhdGVkIGFzIGEgZGljdGlv
bmFyeS4KICAgICAgICAgaWYgKHNsb3RCYXNlT2JqZWN0LT5zdHJ1Y3R1cmUoKS0+aXNEaWN0aW9u
YXJ5KCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHRyYW5zaXRpb24gPSBTdHJ1
Y3R1cmU6OmZyb21EaWN0aW9uYXJ5VHJhbnNpdGlvbihzbG90QmFzZU9iamVjdC0+c3RydWN0dXJl
KCkpOwogICAgICAgICAgICAgc2xvdEJhc2VPYmplY3QtPnNldFN0cnVjdHVyZSh0cmFuc2l0aW9u
LnJlbGVhc2UoKSk7Ci0gICAgICAgICAgICBhc09iamVjdChiYXNlVmFsdWUpLT5zdHJ1Y3R1cmUo
KS0+c2V0Q2FjaGVkUHJvdG90eXBlQ2hhaW4oMCk7CisgICAgICAgICAgICBhc0NlbGwoYmFzZVZh
bHVlKS0+c3RydWN0dXJlKCktPnNldENhY2hlZFByb3RvdHlwZUNoYWluKDApOwogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBzdHViSW5mby0+aW5pdEdldEJ5SWRQcm90byhzdHJ1Y3R1cmUs
IHNsb3RCYXNlT2JqZWN0LT5zdHJ1Y3R1cmUoKSk7CkBAIC00NTU0LDcgKzQ1NTQsNyBAQCBKU1Zh
bHVlKiBJbnRlcnByZXRlcjo6Y3RpX29wX2dldF9ieV9pZF9zCiAKICAgICBDSEVDS19GT1JfRVhD
RVBUSU9OKCk7CiAKLSAgICBpZiAoYmFzZVZhbHVlLT5pc09iamVjdCgpCisgICAgaWYgKCFKU0lt
bWVkaWF0ZTo6aXNJbW1lZGlhdGUoYmFzZVZhbHVlKQogICAgICAgICAmJiBzbG90LmlzQ2FjaGVh
YmxlKCkKICAgICAgICAgJiYgIWFzQ2VsbChiYXNlVmFsdWUpLT5zdHJ1Y3R1cmUoKS0+aXNEaWN0
aW9uYXJ5KCkKICAgICAgICAgJiYgc2xvdC5zbG90QmFzZSgpID09IGJhc2VWYWx1ZSkgewpAQCAt
NDYyOCw3ICs0NjI4LDcgQEAgSlNWYWx1ZSogSW50ZXJwcmV0ZXI6OmN0aV9vcF9nZXRfYnlfaWRf
cAogCiAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwogCi0gICAgaWYgKCFiYXNlVmFsdWUtPmlz
T2JqZWN0KCkgfHwgIXNsb3QuaXNDYWNoZWFibGUoKSB8fCBhc0NlbGwoYmFzZVZhbHVlKS0+c3Ry
dWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKSB7CisgICAgaWYgKEpTSW1tZWRpYXRlOjppc0ltbWVk
aWF0ZShiYXNlVmFsdWUpIHx8ICFzbG90LmlzQ2FjaGVhYmxlKCkgfHwgYXNDZWxsKGJhc2VWYWx1
ZSktPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkgewogICAgICAgICBjdGlSZXBhdGNoQ2Fs
bEJ5UmV0dXJuQWRkcmVzcyhDVElfUkVUVVJOX0FERFJFU1MsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fZmFpbCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgIH0KQEAgLTQ2NDMsMTIgKzQ2NDMsMTIgQEAgSlNWYWx1ZSogSW50ZXJwcmV0ZXI6OmN0
aV9vcF9nZXRfYnlfaWRfcAogICAgIGlmIChzbG90LnNsb3RCYXNlKCkgPT0gYmFzZVZhbHVlKQog
ICAgICAgICBjdGlSZXBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhDVElfUkVUVVJOX0FERFJFU1Ms
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fZmFpbCkpOwog
ICAgIGVsc2UgaWYgKHNsb3Quc2xvdEJhc2UoKSA9PSBhc0NlbGwoYmFzZVZhbHVlKS0+c3RydWN0
dXJlKCktPnByb3RvdHlwZUZvckxvb2t1cChjYWxsRnJhbWUpKSB7Ci0gICAgICAgIC8vIEhlYXZ5
IGFjY2VzcyB0byBhIHByb3RvdHlwZSBpcyBhIGdvb2QgaW5kaWNhdGlvbiB0aGF0IGl0J3Mgbm90
IGJlaW5nCi0gICAgICAgIC8vIHVzZWQgYXMgYSBkaWN0aW9uYXJ5LgorICAgICAgICAvLyBTaW5j
ZSB3ZSdyZSBhY2Nlc3NpbmcgYSBwcm90b3R5cGUgaW4gYSBsb29wLCBpdCdzIGEgZ29vZCBiZXQg
dGhhdCBpdAorICAgICAgICAvLyBzaG91bGQgbm90IGJlIHRyZWF0ZWQgYXMgYSBkaWN0aW9uYXJ5
LgogICAgICAgICBpZiAoc2xvdEJhc2VPYmplY3QtPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnko
KSkgewogICAgICAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gdHJhbnNpdGlvbiA9IFN0cnVjdHVy
ZTo6ZnJvbURpY3Rpb25hcnlUcmFuc2l0aW9uKHNsb3RCYXNlT2JqZWN0LT5zdHJ1Y3R1cmUoKSk7
CiAgICAgICAgICAgICBzbG90QmFzZU9iamVjdC0+c2V0U3RydWN0dXJlKHRyYW5zaXRpb24ucmVs
ZWFzZSgpKTsKLSAgICAgICAgICAgIGFzT2JqZWN0KGJhc2VWYWx1ZSktPnN0cnVjdHVyZSgpLT5z
ZXRDYWNoZWRQcm90b3R5cGVDaGFpbigwKTsKKyAgICAgICAgICAgIGFzQ2VsbChiYXNlVmFsdWUp
LT5zdHJ1Y3R1cmUoKS0+c2V0Q2FjaGVkUHJvdG90eXBlQ2hhaW4oMCk7CiAgICAgICAgIH0KIAog
ICAgICAgICBpbnQgbGlzdEluZGV4OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzkzNzEpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAwOC0x
Mi0xNyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkZWQgYSB0ZXN0IGZv
ciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzOTMKKyAgICAgICAg
U2VnZmF1bHQgd2hlbiBjYWNoaW5nIHByb3BlcnR5IGFjY2Vzc2VzIHRvIHByaW1pdGl2ZSBjZWxs
cy4KKworICAgICAgICAqIGZhc3QvanMvcHJpbWl0aXZlLXByb3BlcnR5LWFjY2Vzcy1lZGdlLWNh
c2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9wcmltaXRpdmUtcHJv
cGVydHktYWNjZXNzLWVkZ2UtY2FzZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9y
ZXNvdXJjZXMvcHJpbWl0aXZlLXByb3BlcnR5LWFjY2Vzcy1lZGdlLWNhc2VzLmpzOiBBZGRlZC4K
KyAgICAgICAgKCk6CisKIDIwMDgtMTItMTcgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMu
emltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVq
IFN0YWNob3dpYWsuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3ByaW1pdGl2ZS1wcm9wZXJ0
eS1hY2Nlc3MtZWRnZS1jYXNlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9qcy9wcmltaXRpdmUtcHJvcGVydHktYWNjZXNzLWVkZ2UtY2FzZXMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9wcmltaXRpdmUtcHJvcGVy
dHktYWNjZXNzLWVkZ2UtY2FzZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEwIEBACitUaGlzIHBhZ2UgdGVzdHMgZm9yIGFzc2VydGlvbiBmYWlsdXJlcyBpbiBlZGdlIGNh
c2VzIG9mIHByb3BlcnR5IGxvb2t1cCBvbiBwcmltaXRpdmUgdmFsdWVzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkaWROb3RDcmFzaCBpcyB0cnVlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9wcmltaXRpdmUtcHJvcGVydHktYWNjZXNzLWVkZ2UtY2FzZXMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3ByaW1pdGl2ZS1wcm9wZXJ0eS1hY2Nlc3Mt
ZWRnZS1jYXNlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9wcmlt
aXRpdmUtcHJvcGVydHktYWNjZXNzLWVkZ2UtY2FzZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcmltaXRp
dmUtcHJvcGVydHktYWNjZXNzLWVkZ2UtY2FzZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvcHJpbWl0aXZlLXByb3BlcnR5LWFj
Y2Vzcy1lZGdlLWNhc2VzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVz
b3VyY2VzL3ByaW1pdGl2ZS1wcm9wZXJ0eS1hY2Nlc3MtZWRnZS1jYXNlcy5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL3ByaW1pdGl2ZS1wcm9wZXJ0eS1h
Y2Nlc3MtZWRnZS1jYXNlcy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorZGVzY3Jp
cHRpb24oCisiVGhpcyBwYWdlIHRlc3RzIGZvciBhc3NlcnRpb24gZmFpbHVyZXMgaW4gZWRnZSBj
YXNlcyBvZiBwcm9wZXJ0eSBsb29rdXAgb24gcHJpbWl0aXZlIHZhbHVlcy4iCispOworCit2YXIg
ZGlkTm90Q3Jhc2ggPSB0cnVlOworCisoZnVuY3Rpb24gKCkgeworICAgIGRlbGV0ZSBTdHJpbmcu
cHJvdG90eXBlLmNvbnN0cnVjdG9yOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgKytpKQor
ICAgICAgICAiIi5yZXBsYWNlOworfSkoKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICBTdHJpbmcu
cHJvdG90eXBlLl9fcHJvdG9fXyA9IHsgeDogMSwgeTogMSB9OworICAgIGRlbGV0ZSBTdHJpbmcu
cHJvdG90eXBlLl9fcHJvdG9fXy54OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgKytpKQor
ICAgICAgICAiIi55OworfSkoKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICBmdW5jdGlvbiBmKHgp
IHsKKyAgICAgICAgeC55OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcucHJvdG90eXBlLnggPSAx
OworICAgIFN0cmluZy5wcm90b3R5cGUueSA9IDE7CisgICAgZGVsZXRlIFN0cmluZy5wcm90b3R5
cGUueDsKKworICAgIE51bWJlci5wcm90b3R5cGUueCA9IDE7CisgICAgTnVtYmVyLnByb3RvdHlw
ZS55ID0gMTsKKyAgICBkZWxldGUgTnVtYmVyLnByb3RvdHlwZS54OworCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAzOyArK2kpCisgICAgICAgIGYoIiIpOworCisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAzOyArK2kpCisgICAgICAgIGYoLjUpOworfSkoKTsKKworc2hvdWxkQmVUcnVlKCJkaWRO
b3RDcmFzaCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="12319"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>