<?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>65294</bug_id>
          
          <creation_ts>2011-07-27 16:38:40 -0700</creation_ts>
          <short_desc>DFG JIT - may speculate based on wrong arguments.</short_desc>
          <delta_ts>2011-07-27 20:30:40 -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>528+ (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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>443220</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-27 16:38:40 -0700</bug_when>
    <thetext>In the case of a DFG compiled function calling to and compiling a second function that also compiles through the DFG JIT (i.e. compilation triggered with DFGOperations.cpp), we call compileFor passing the caller functions exec state, rather than the callee&apos;s.  This may lead to mis-optimization, since the DFG compiler will example the exec state&apos;s arguments on the assumption that these will be passed to the callee - it is wanting the callee exec state, not the caller&apos;s exec state.

Fixing this for all cases of compilation is tricksy, due to the way the numeric sort function is compiled, &amp; the structure of the calls in the Interpreter::execute methods.  Only fix for compilation from the JIT, in other calls don&apos;t speculate based on arguments for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443221</commentid>
    <comment_count>1</comment_count>
      <attachid>102202</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-27 16:40:44 -0700</bug_when>
    <thetext>Created attachment 102202
The patch

No performance impact</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443294</commentid>
    <comment_count>2</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-27 20:30:40 -0700</bug_when>
    <thetext>Fixed in r91883</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102202</attachid>
            <date>2011-07-27 16:40:44 -0700</date>
            <delta_ts>2011-07-27 16:44:40 -0700</delta_ts>
            <desc>The patch</desc>
            <filename>65294.patch</filename>
            <type>text/plain</type>
            <size>9239</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTE4ODEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTEtMDctMjcgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTI5NAor
ICAgICAgICBERkcgSklUIC0gbWF5IHNwZWN1bGF0ZSBiYXNlZCBvbiB3cm9uZyBhcmd1bWVudHMu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhl
IGNhc2Ugb2YgYSBERkcgY29tcGlsZWQgZnVuY3Rpb24gY2FsbGluZyB0byBhbmQgY29tcGlsaW5n
IGEgc2Vjb25kIGZ1bmN0aW9uIHRoYXQKKyAgICAgICAgYWxzbyBjb21waWxlcyB0aHJvdWdoIHRo
ZSBERkcgSklUIChpLmUuIGNvbXBpbGF0aW9uIHRyaWdnZXJlZCB3aXRoIERGR09wZXJhdGlvbnMu
Y3BwKSwKKyAgICAgICAgd2UgY2FsbCBjb21waWxlRm9yIHBhc3NpbmcgdGhlIGNhbGxlciBmdW5j
dGlvbnMgZXhlYyBzdGF0ZSwgcmF0aGVyIHRoYW4gdGhlIGNhbGxlZSdzLgorICAgICAgICBUaGlz
IG1heSBsZWFkIHRvIG1pcy1vcHRpbWl6YXRpb24sIHNpbmNlIHRoZSBERkcgY29tcGlsZXIgd2ls
bCBleGFtcGxlIHRoZSBleGVjIHN0YXRlJ3MKKyAgICAgICAgYXJndW1lbnRzIG9uIHRoZSBhc3N1
bXB0aW9uIHRoYXQgdGhlc2Ugd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNhbGxlZSAtIGl0IGlzIHdh
bnRpbmcgdGhlCisgICAgICAgIGNhbGxlZSBleGVjIHN0YXRlLCBub3QgdGhlIGNhbGxlcidzIGV4
ZWMgc3RhdGUuCisKKyAgICAgICAgRml4aW5nIHRoaXMgZm9yIGFsbCBjYXNlcyBvZiBjb21waWxh
dGlvbiBpcyB0cmlja3N5LCBkdWUgdG8gdGhlIHdheSB0aGUgbnVtZXJpYyBzb3J0CisgICAgICAg
IGZ1bmN0aW9uIGlzIGNvbXBpbGVkLCAmIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNhbGxzIGluIHRo
ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZSBtZXRob2RzLgorICAgICAgICBPbmx5IGZpeCBmb3IgY29t
cGlsYXRpb24gZnJvbSB0aGUgSklULCBpbiBvdGhlciBjYWxscyBkb24ndCBzcGVjdWxhdGUgYmFz
ZWQgb24gYXJndW1lbnRzCisgICAgICAgIGZvciBub3cuCisKKyAgICAgICAgKiBkZmcvREZHT3Bl
cmF0aW9ucy5jcHA6CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAg
KEpTQzo6dHJ5REZHQ29tcGlsZSk6CisgICAgICAgIChKU0M6OnRyeURGR0NvbXBpbGVGdW5jdGlv
bik6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6Y29tcGlsZUZvckNhbGxJbnRl
cm5hbCk6CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OkZ1
bmN0aW9uRXhlY3V0YWJsZTo6Y29tcGlsZUZvckNhbGwpOgorICAgICAgICAoSlNDOjpGdW5jdGlv
bkV4ZWN1dGFibGU6OmNvbXBpbGVGb3IpOgorCiAyMDExLTA3LTI3ICBPbGl2ZXIgSHVudCAgPG9s
aXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgSGFuZGxlIGNhbGxiYWNrIG9yaWVudGVkIEpTT05Q
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJl
dmlzaW9uIDkxODc0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTI5LDggKzUyOSw5IEBAIGlubGluZSB2b2lkKiBsaW5r
Rm9yKEV4ZWNTdGF0ZSogZXhlY0NhbGwKICAgICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rp
b24oKSkKICAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3Io
a2luZCkuYWRkcmVzc0ZvckNhbGwoKTsKICAgICBlbHNlIHsKKyAgICAgICAgZXhlY0NhbGxlZS0+
c2V0U2NvcGVDaGFpbihjYWxsZWUtPnNjb3BlKCkpOwogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFi
bGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+
KGV4ZWN1dGFibGUpOwotICAgICAgICBKU09iamVjdCogZXJyb3IgPSBmdW5jdGlvbkV4ZWN1dGFi
bGUtPmNvbXBpbGVGb3IoZXhlYywgY2FsbGVlLT5zY29wZSgpLCBraW5kKTsKKyAgICAgICAgSlNP
YmplY3QqIGVycm9yID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5jb21waWxlRm9yKGV4ZWNDYWxsZWUs
IGNhbGxlZS0+c2NvcGUoKSwga2luZCk7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAg
ICAgZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uID0gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMp
OwogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC01NDAsNyArNTQxLDYgQEAgaW5saW5lIHZvaWQq
IGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbAogICAgICAgICAgICAgY29kZVB0ciA9IGZ1bmN0
aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS5hZGRyZXNzRm9yQ2FsbCgp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxl
LT5nZW5lcmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCk7Ci0gICAgICAgIGV4ZWND
YWxsZWUtPnNldFNjb3BlQ2hhaW4oY2FsbGVlLT5zY29wZSgpKTsKICAgICB9CiAgICAgQ2FsbExp
bmtJbmZvJiBjYWxsTGlua0luZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0Q2FsbExpbmtJbmZv
KHJldHVybkFkZHJlc3MpOwogICAgIGlmICghY2FsbExpbmtJbmZvLnNlZW5PbmNlKCkpCkBAIC01
NzQsMTYgKzU3NCwxNiBAQCBpbmxpbmUgdm9pZCogdmlydHVhbEZvcihFeGVjU3RhdGUqIGV4ZWND
CiAgICAgICAgIHJldHVybiBoYW5kbGVIb3N0Q2FsbChleGVjQ2FsbGVlLCBjYWxsZWVBc1ZhbHVl
LCBraW5kKTsKICAgICAKICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IGFzRnVuY3Rpb24oY2Fs
bGVlQXNGdW5jdGlvbkNlbGwpOworICAgIGV4ZWNDYWxsZWUtPnNldFNjb3BlQ2hhaW4oZnVuY3Rp
b24tPnNjb3BlVW5jaGVja2VkKCkpOwogICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlID0g
ZnVuY3Rpb24tPmV4ZWN1dGFibGUoKTsKICAgICBpZiAoVU5MSUtFTFkoIWV4ZWN1dGFibGUtPmhh
c0pJVENvZGVGb3Ioa2luZCkpKSB7CiAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rp
b25FeGVjdXRhYmxlID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0YWJs
ZSk7Ci0gICAgICAgIEpTT2JqZWN0KiBlcnJvciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29tcGls
ZUZvcihleGVjLCBmdW5jdGlvbi0+c2NvcGUoKSwga2luZCk7CisgICAgICAgIEpTT2JqZWN0KiBl
cnJvciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29tcGlsZUZvcihleGVjQ2FsbGVlLCBmdW5jdGlv
bi0+c2NvcGUoKSwga2luZCk7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAgZXhl
Yy0+Z2xvYmFsRGF0YSgpLmV4Y2VwdGlvbiA9IGVycm9yOwogICAgICAgICAgICAgcmV0dXJuIDA7
CiAgICAgICAgIH0KICAgICB9Ci0gICAgZXhlY0NhbGxlZS0+c2V0U2NvcGVDaGFpbihmdW5jdGlv
bi0+c2NvcGVVbmNoZWNrZWQoKSk7CiAgICAgcmV0dXJuIGV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJ
VENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kKS5leGVjdXRhYmxlQWRkcmVzcygpOwogfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkocmV2
aXNpb24gOTE4NzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTQgKzU3LDEyIEBAIHN0YXRpYyBib29sIHRyeURG
R0NvbXBpbGUoRXhlY1N0YXRlKiBleGUKICAgICBpZiAoIXBhcnNlKGRmZywgZ2xvYmFsRGF0YSwg
Y29kZUJsb2NrKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZGZnLnByZWRpY3RBcmd1
bWVudFR5cGVzKGV4ZWMpOwotCiAgICAgREZHOjpKSVRDb21waWxlciBkYXRhRmxvd0pJVChnbG9i
YWxEYXRhLCBkZmcsIGNvZGVCbG9jayk7CiAgICAgZGF0YUZsb3dKSVQuY29tcGlsZShqaXRDb2Rl
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgdHJ5REZHQ29tcGlsZUZ1bmN0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVENvZGUmIGppdENv
ZGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciYgaml0Q29kZVdpdGhBcml0eUNoZWNrKQorc3RhdGlj
IGJvb2wgdHJ5REZHQ29tcGlsZUZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRXhlY1N0YXRlKiBj
YWxsZWVBcmdzRXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVENvZGUmIGppdENvZGUsIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciYgaml0Q29kZVdpdGhBcml0eUNoZWNrKQogewogI2lmIEVOQUJM
RShERkdfSklUX1JFU1RSSUNUSU9OUykKICAgICAvLyBGSVhNRTogTm8gZmxvdyBjb250cm9sIHll
dCBzdXBwb3J0ZWQsIGRvbid0IGJvdGhlciBzY2FubmluZyB0aGUgYnl0ZWNvZGUgaWYgdGhlcmUg
YXJlIGFueSBqdW1wIHRhcmdldHMuCkBAIC03Nyw3ICs3NSw4IEBAIHN0YXRpYyBib29sIHRyeURG
R0NvbXBpbGVGdW5jdGlvbihFeGVjU3QKICAgICBpZiAoIXBhcnNlKGRmZywgZ2xvYmFsRGF0YSwg
Y29kZUJsb2NrKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZGZnLnByZWRpY3RBcmd1
bWVudFR5cGVzKGV4ZWMpOworICAgIGlmIChjYWxsZWVBcmdzRXhlYykKKyAgICAgICAgZGZnLnBy
ZWRpY3RBcmd1bWVudFR5cGVzKGNhbGxlZUFyZ3NFeGVjKTsKIAogICAgIERGRzo6SklUQ29tcGls
ZXIgZGF0YUZsb3dKSVQoZ2xvYmFsRGF0YSwgZGZnLCBjb2RlQmxvY2spOwogICAgIGRhdGFGbG93
SklULmNvbXBpbGVGdW5jdGlvbihqaXRDb2RlLCBqaXRDb2RlV2l0aEFyaXR5Q2hlY2spOwpAQCAt
ODUsNyArODQsNyBAQCBzdGF0aWMgYm9vbCB0cnlERkdDb21waWxlRnVuY3Rpb24oRXhlY1N0CiB9
CiAjZWxzZQogc3RhdGljIGJvb2wgdHJ5REZHQ29tcGlsZShFeGVjU3RhdGUqLCBDb2RlQmxvY2sq
LCBKSVRDb2RlJikgeyByZXR1cm4gZmFsc2U7IH0KLXN0YXRpYyBib29sIHRyeURGR0NvbXBpbGVG
dW5jdGlvbihFeGVjU3RhdGUqLCBDb2RlQmxvY2sqLCBKSVRDb2RlJiwgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyJikgeyByZXR1cm4gZmFsc2U7IH0KK3N0YXRpYyBib29sIHRyeURGR0NvbXBpbGVGdW5j
dGlvbihFeGVjU3RhdGUqLCBFeGVjU3RhdGUqLCBDb2RlQmxvY2sqLCBKSVRDb2RlJiwgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyJikgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCiBjbGFzcyBFeGVj
dXRhYmxlRmluYWxpemVyIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CkBAIC0zMTcsNyArMzE2
LDcgQEAgdm9pZCBQcm9ncmFtRXhlY3V0YWJsZTo6dmlzaXRDaGlsZHJlbihTbAogICAgICAgICBt
X3Byb2dyYW1Db2RlQmxvY2stPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogfQogCi1KU09iamVj
dCogRnVuY3Rpb25FeGVjdXRhYmxlOjpjb21waWxlRm9yQ2FsbEludGVybmFsKEV4ZWNTdGF0ZSog
ZXhlYywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQorSlNPYmplY3QqIEZ1bmN0aW9u
RXhlY3V0YWJsZTo6Y29tcGlsZUZvckNhbGxJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZWMsIFNjb3Bl
Q2hhaW5Ob2RlKiBzY29wZUNoYWluTm9kZSwgRXhlY1N0YXRlKiBjYWxsZWVBcmdzRXhlYykKIHsK
ICAgICBKU09iamVjdCogZXhjZXB0aW9uID0gMDsKICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERh
dGEgPSBzY29wZUNoYWluTm9kZS0+Z2xvYmFsRGF0YTsKQEAgLTM1MSw3ICszNTAsNyBAQCBKU09i
amVjdCogRnVuY3Rpb25FeGVjdXRhYmxlOjpjb21waWxlRm9yCiAKICNpZiBFTkFCTEUoSklUKQog
ICAgIGlmIChleGVjLT5nbG9iYWxEYXRhKCkuY2FuVXNlSklUKCkpIHsKLSAgICAgICAgYm9vbCBk
ZmdDb21waWxlZCA9IHRyeURGR0NvbXBpbGVGdW5jdGlvbihleGVjLCBtX2NvZGVCbG9ja0ZvckNh
bGwuZ2V0KCksIG1faml0Q29kZUZvckNhbGwsIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVj
ayk7CisgICAgICAgIGJvb2wgZGZnQ29tcGlsZWQgPSB0cnlERkdDb21waWxlRnVuY3Rpb24oZXhl
YywgY2FsbGVlQXJnc0V4ZWMsIG1fY29kZUJsb2NrRm9yQ2FsbC5nZXQoKSwgbV9qaXRDb2RlRm9y
Q2FsbCwgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKTsKICAgICAgICAgaWYgKCFkZmdD
b21waWxlZCkKICAgICAgICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBKSVQ6OmNvbXBpbGUoc2Nv
cGVDaGFpbk5vZGUtPmdsb2JhbERhdGEsIG1fY29kZUJsb2NrRm9yQ2FsbC5nZXQoKSwgJm1faml0
Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHJldmlzaW9uIDkxODc0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDUsMTIg
KzQwNSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiAqbV9jb2RlQmxv
Y2tGb3JDb25zdHJ1Y3Q7CiAgICAgICAgIH0KIAotICAgICAgICBKU09iamVjdCogY29tcGlsZUZv
ckNhbGwoRXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5vZGUpCisg
ICAgICAgIEpTT2JqZWN0KiBjb21waWxlRm9yQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hh
aW5Ob2RlKiBzY29wZUNoYWluTm9kZSwgRXhlY1N0YXRlKiBjYWxsZWVBcmdzRXhlYyA9IDApCiAg
ICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChleGVjLT5nbG9iYWxEYXRhKCkuZHluYW1pY0ds
b2JhbE9iamVjdCk7CiAgICAgICAgICAgICBKU09iamVjdCogZXJyb3IgPSAwOwogICAgICAgICAg
ICAgaWYgKCFtX2NvZGVCbG9ja0ZvckNhbGwpCi0gICAgICAgICAgICAgICAgZXJyb3IgPSBjb21w
aWxlRm9yQ2FsbEludGVybmFsKGV4ZWMsIHNjb3BlQ2hhaW5Ob2RlKTsKKyAgICAgICAgICAgICAg
ICBlcnJvciA9IGNvbXBpbGVGb3JDYWxsSW50ZXJuYWwoZXhlYywgc2NvcGVDaGFpbk5vZGUsIGNh
bGxlZUFyZ3NFeGVjKTsKICAgICAgICAgICAgIEFTU0VSVCghZXJyb3IgPT0gISFtX2NvZGVCbG9j
a0ZvckNhbGwpOwogICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICB9CkBAIC00NDks
OCArNDQ5LDE0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgSlNPYmplY3Qq
IGNvbXBpbGVGb3IoRXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5v
ZGUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKICAgICAgICAgeworICAgICAgICAgICAg
Ly8gY29tcGlsZUZvciBzaG91bGQgb25seSBiZSBjYWxsZWQgd2l0aCBhIGNhbGxmcmFtZSBzZXQg
dXAgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uLAorICAgICAgICAgICAgLy8gc2luY2Ugd2Ugd2lsbCBt
YWtlIHNwZWN1bGF0aXZlIG9wdGltaXphdGlvbnMgYmFzZWQgb24gdGhlIGFyZ3VtZW50cy4KKyAg
ICAgICAgICAgIEFTU0VSVChleGVjLT5jYWxsZWUoKSk7CisgICAgICAgICAgICBBU1NFUlQoZXhl
Yy0+Y2FsbGVlKCktPmluaGVyaXRzKCZKU0Z1bmN0aW9uOjpzX2luZm8pKTsKKyAgICAgICAgICAg
IEFTU0VSVChhc0Z1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+anNFeGVjdXRhYmxlKCkgPT0gdGhp
cyk7CisKICAgICAgICAgICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKQotICAgICAgICAgICAg
ICAgIHJldHVybiBjb21waWxlRm9yQ2FsbChleGVjLCBzY29wZUNoYWluTm9kZSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNvbXBpbGVGb3JDYWxsKGV4ZWMsIHNjb3BlQ2hhaW5Ob2RlLCBleGVj
KTsKICAgICAgICAgICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwogICAgICAg
ICAgICAgcmV0dXJuIGNvbXBpbGVGb3JDb25zdHJ1Y3QoZXhlYywgc2NvcGVDaGFpbk5vZGUpOwog
ICAgICAgICB9CkBAIC00OTEsNyArNDk3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEZ1
bmN0aW9uRXhlY3V0YWJsZShKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBj
b25zdCBTb3VyY2VDb2RlJiwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1l
dGVycyosIGJvb2wsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSk7CiAgICAgICAgIEZ1bmN0
aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBT
b3VyY2VDb2RlJiwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyos
IGJvb2wsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSk7CiAKLSAgICAgICAgSlNPYmplY3Qq
IGNvbXBpbGVGb3JDYWxsSW50ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqKTsKKyAg
ICAgICAgSlNPYmplY3QqIGNvbXBpbGVGb3JDYWxsSW50ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVD
aGFpbk5vZGUqLCBFeGVjU3RhdGUqIGNhbGxlZUFyZ3NFeGVjKTsKICAgICAgICAgSlNPYmplY3Qq
IGNvbXBpbGVGb3JDb25zdHJ1Y3RJbnRlcm5hbChFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSop
OwogICAgICAgICAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IFNjcmlwdEV4ZWN1dGFibGU6OlN0cnVjdHVyZUZs
YWdzOwo=
</data>
<flag name="review"
          id="97377"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>