<?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>66104</bug_id>
          
          <creation_ts>2011-08-11 15:13:17 -0700</creation_ts>
          <short_desc>DFG JIT speculation failure code sometimes picks the wrong register as a scratch register.</short_desc>
          <delta_ts>2011-08-11 20:42:06 -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>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>450073</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-08-11 15:13:17 -0700</bug_when>
    <thetext>The DFG JIT speculation failure code attempts to pick three registers (one GPR, two FPRs) for scratch storage.  This is opportunistic and may fail; even if it does the speculation failure will still work but may require somewhat slower code.  Currently, the code to pick scratch registers assumes that if a register is spilled then it can be subsequently be used for scratch.  This is incorrect, as the register may actually be used for shuffling (i.e. subsequent code in the speculation failure path may assume that the register still contains the value of a DFG node, and may move that value from that register into a different register).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450074</commentid>
    <comment_count>1</comment_count>
      <attachid>103682</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-08-11 15:15:43 -0700</bug_when>
    <thetext>Created attachment 103682
the patch

All tests pass.  Performance is neutral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450075</commentid>
    <comment_count>2</comment_count>
      <attachid>103683</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-08-11 15:17:18 -0700</bug_when>
    <thetext>Created attachment 103683
the patch (fix style)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450077</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-11 15:18:10 -0700</bug_when>
    <thetext>Attachment 103682 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:624:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450246</commentid>
    <comment_count>4</comment_count>
      <attachid>103683</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-08-11 19:49:38 -0700</bug_when>
    <thetext>Comment on attachment 103683
the patch (fix style)

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

&gt; Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:643
&gt; +                ASSERT((scratchFPR1 == InvalidFPRReg &amp;&amp; scratchFPR2 == InvalidFPRReg) || (scratchFPR1 != scratchFPR2));

the latter set of parentheses are redundant, but we can remove them later. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450259</commentid>
    <comment_count>5</comment_count>
      <attachid>103683</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-11 20:42:02 -0700</bug_when>
    <thetext>Comment on attachment 103683
the patch (fix style)

Clearing flags on attachment: 103683

Committed r92909: &lt;http://trac.webkit.org/changeset/92909&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450260</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-11 20:42:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103682</attachid>
            <date>2011-08-11 15:15:43 -0700</date>
            <delta_ts>2011-08-11 15:17:18 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixspecfail_patch_1.diff</filename>
            <type>text/plain</type>
            <size>6215</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTI4ODMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTEtMDgtMTEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIHNwZWN1bGF0aW9uIGZhaWx1cmUgY29kZSBzb21ldGltZXMgcGlja3MgdGhlIHdyb25n
IHJlZ2lzdGVyCisgICAgICAgIGFzIGEgc2NyYXRjaCByZWdpc3Rlci4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MTA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBIYXJkZW5lZCB0aGUgY29k
ZSB3aXRoIG1vcmUgYXNzZXJ0aW9ucyBhbmQgZml4ZWQgdGhlIGJ1Zy4gIE5vdyBhCisgICAgICAg
IHNwaWxsZWQgcmVnaXN0ZXIgaXMgb25seSB1c2VkIGZvciBzY3JhdGNoIGlmIGl0IGFsc28gaXNu
J3QgYmVpbmcKKyAgICAgICAgdXNlZCBmb3Igc2h1ZmZsaW5nLgorCisgICAgICAgICogZGZnL0RG
R0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTaHVmZmxlZFJlZ2lzdGVyOjpo
YW5kbGVOb25DeWNsaW5nUGVybXV0YXRpb24pOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBp
bGVyOjpqdW1wRnJvbVNwZWN1bGF0aXZlVG9Ob25TcGVjdWxhdGl2ZSk6CisKIDIwMTEtMDgtMTEg
IEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBudWxscHRy
IGNhbid0IGJlIHVzZWQgZm9yIFBhc3NSZWZQdHIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiA5Mjg4MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MjYsOCArMzI2LDEwIEBAIHN0cnVjdCBTaHVmZmxlZFJlZ2lzdGVyIHsKICAgICAgICAgICAgIGlm
IChjdXItPnJlZy5pc0ZQUigpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHNjcmF0Y2hGUFIxID09
IEludmFsaWRGUFJSZWcpCiAgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2hGUFIxID0gY3VyLT5y
ZWcuZnByKCk7Ci0gICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc2NyYXRjaEZQUjEgIT0gY3VyLT5yZWcuZnByKCkp
OwogICAgICAgICAgICAgICAgICAgICBzY3JhdGNoRlBSMiA9IGN1ci0+cmVnLmZwcigpOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGN1ciA9IGN1ci0+cHJl
dmlvdXM7CiAgICAgICAgIH0KQEAgLTMzNSw4ICszMzcsMTAgQEAgc3RydWN0IFNodWZmbGVkUmVn
aXN0ZXIgewogICAgICAgICBpZiAoY3VyLT5yZWcuaXNGUFIoKSkgewogICAgICAgICAgICAgaWYg
KHNjcmF0Y2hGUFIxID09IEludmFsaWRGUFJSZWcpCiAgICAgICAgICAgICAgICAgc2NyYXRjaEZQ
UjEgPSBjdXItPnJlZy5mcHIoKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgIEFTU0VSVChzY3JhdGNoRlBSMSAhPSBjdXItPnJlZy5mcHIoKSk7
CiAgICAgICAgICAgICAgICAgc2NyYXRjaEZQUjIgPSBjdXItPnJlZy5mcHIoKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTU2OSw3ICs1NzMsNiBAQCB2b2lkIEpJ
VENvbXBpbGVyOjpqdW1wRnJvbVNwZWN1bGF0aXZlVG9OCiAgICAgICAgIAogICAgICAgICAvLyBC
YWlsIG91dCBpZiB0aGlzIHJlZ2lzdGVyIGlzbid0IGFzc2lnbmVkIHRvIGFueXRoaW5nLgogICAg
ICAgICBpZiAobm9kZUluZGV4ID09IE5vTm9kZSkgewotICAgICAgICAgICAgc2NyYXRjaEdQUiA9
IEdQUkluZm86OnRvUmVnaXN0ZXIoaW5kZXgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KICAgICAgICAgCkBAIC01ODcsNiArNTkwLDEyIEBAIHZvaWQgSklUQ29tcGlsZXI6Omp1
bXBGcm9tU3BlY3VsYXRpdmVUb04KICAgICAgICAgICAgIC8vIHBhcnQgYmVsb3cgcmVnYXJkbGVz
cyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgc3BlY3VsYXRpdmUgcGF0aCBoYXMgc3BpbGxlZCBpdC4K
ICAgICAgICAgICAgIGlmICghbWFwSXRlcmF0b3ItPnNlY29uZC5maW5kSW5FbnRyeUxvY2F0aW9u
KGVudHJ5KS5pc1NwaWxsZWQpCiAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgbm9uLXNwZWN1bGF0aXZlIGVudHJ5IGlzbid0
IHVzaW5nIHRoaXMgcmVnaXN0ZXIgYW5kIGl0IGRvZXMgbm90IG5lZWQKKyAgICAgICAgICAgIC8v
IHRoZSB2YWx1ZSBpbiB0aGlzIHJlZ2lzdGVyIHRvIGJlIHBsYWNlZCBpbnRvIGFueSBvdGhlciBy
ZWdpc3RlciwgdGhlbiB0aGlzCisgICAgICAgICAgICAvLyByZWdpc3RlciBjYW4gYmUgdXNlZCBm
b3Igc2NyYXRjaC4KKyAgICAgICAgICAgIGlmIChlbnRyeS5tX2dwckluZm9baW5kZXhdLm5vZGVJ
bmRleCA9PSBOb05vZGUpCisgICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IEdQUkluZm86OnRv
UmVnaXN0ZXIoaW5kZXgpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBJZiB0aGUg
c3BlY3VsYXRpdmUgcGF0aCBoYXMgYWxyZWFkeSBzcGlsbGVkIHRoZSByZWdpc3RlciB0aGVuIHRo
ZXJlIGlzIG5vIG5lZWQgdG8KQEAgLTYwMSw4ICs2MTAsNiBAQCB2b2lkIEpJVENvbXBpbGVyOjpq
dW1wRnJvbVNwZWN1bGF0aXZlVG9OCiAgICAgICAgIGlmIChkYXRhRm9ybWF0ID09IERhdGFGb3Jt
YXRJbnRlZ2VyKQogICAgICAgICAgICAgb3JQdHIoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lz
dGVyLCBHUFJJbmZvOjp0b1JlZ2lzdGVyKGluZGV4KSk7CiAgICAgICAgIHN0b3JlUHRyKEdQUklu
Zm86OnRvUmVnaXN0ZXIoaW5kZXgpLCBhZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3RlcikpOwotICAg
ICAgICAKLSAgICAgICAgc2NyYXRjaEdQUiA9IEdQUkluZm86OnRvUmVnaXN0ZXIoaW5kZXgpOwog
ICAgIH0KICAgICAKICAgICBpZiAoc2NyYXRjaEdQUiA9PSBJbnZhbGlkR1BSUmVnKSB7CkBAIC02
MTIsOCArNjE5LDkgQEAgdm9pZCBKSVRDb21waWxlcjo6anVtcEZyb21TcGVjdWxhdGl2ZVRvTgog
CiAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgRlBSSW5mbzo6bnVtYmVyT2ZS
ZWdpc3RlcnM7ICsraW5kZXgpIHsKICAgICAgICAgTm9kZUluZGV4IG5vZGVJbmRleCA9IGNoZWNr
Lm1fZnBySW5mb1tpbmRleF0ubm9kZUluZGV4OwotICAgICAgICBpZiAobm9kZUluZGV4ID09IE5v
Tm9kZSkKKyAgICAgICAgaWYgKG5vZGVJbmRleCA9PSBOb05vZGUpIHsKICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CiAKICAgICAgICAgTm9kZVRvUmVnaXN0ZXJNYXA6Oml0ZXJhdG9y
IG1hcEl0ZXJhdG9yID0gZW50cnlOb2RlVG9SZWdpc3Rlck1hcC5maW5kKG5vZGVJbmRleCk7CiAg
ICAgICAgIGlmIChtYXBJdGVyYXRvciAhPSBlbnRyeU5vZGVUb1JlZ2lzdGVyTWFwLmVuZCgpKSB7
CkBAIC02MjUsNiArNjMzLDE3IEBAIHZvaWQgSklUQ29tcGlsZXI6Omp1bXBGcm9tU3BlY3VsYXRp
dmVUb04KIAogICAgICAgICAgICAgaWYgKCFtYXBJdGVyYXRvci0+c2Vjb25kLmZpbmRJbkVudHJ5
TG9jYXRpb24oZW50cnkpLmlzU3BpbGxlZCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBub24tc3BlY3VsYXRpdmUgZW50
cnkgaXNuJ3QgdXNpbmcgdGhpcyByZWdpc3RlciBhbmQgaXQgZG9lcyBub3QgbmVlZAorICAgICAg
ICAgICAgLy8gdGhlIHZhbHVlIGluIHRoaXMgcmVnaXN0ZXIgdG8gYmUgcGxhY2VkIGludG8gYW55
IG90aGVyIHJlZ2lzdGVyLCB0aGVuIHRoaXMKKyAgICAgICAgICAgIC8vIHJlZ2lzdGVyIGNhbiBi
ZSB1c2VkIGZvciBzY3JhdGNoLgorICAgICAgICAgICAgaWYgKGVudHJ5Lm1fZnBySW5mb1tpbmRl
eF0ubm9kZUluZGV4ID09IE5vTm9kZSkgeworICAgICAgICAgICAgICAgIGlmIChzY3JhdGNoRlBS
MSA9PSBJbnZhbGlkRlBSUmVnKQorICAgICAgICAgICAgICAgICAgICBzY3JhdGNoRlBSMSA9IEZQ
UkluZm86OnRvUmVnaXN0ZXIoaW5kZXgpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjcmF0
Y2hGUFIyKQorICAgICAgICAgICAgICAgICAgICBzY3JhdGNoRlBSMiA9IEZQUkluZm86OnRvUmVn
aXN0ZXIoaW5kZXgpOworICAgICAgICAgICAgICAgIEFTU0VSVCgoc2NyYXRjaEZQUjEgPT0gSW52
YWxpZEZQUlJlZyAmJiBzY3JhdGNoRlBSMiA9PSBJbnZhbGlkRlBSUmVnKSB8fCAoc2NyYXRjaEZQ
UjEgIT0gc2NyYXRjaEZQUjIpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgaWYgKGNoZWNrLm1fZnBySW5mb1tpbmRleF0uaXNTcGlsbGVkKQpAQCAtNjM1LDE0
ICs2NTQsMjcgQEAgdm9pZCBKSVRDb21waWxlcjo6anVtcEZyb21TcGVjdWxhdGl2ZVRvTgogICAg
ICAgICBtb3ZlRG91YmxlVG9QdHIoRlBSSW5mbzo6dG9SZWdpc3RlcihpbmRleCksIHNjcmF0Y2hH
UFIpOwogICAgICAgICBzdWJQdHIoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBzY3Jh
dGNoR1BSKTsKICAgICAgICAgc3RvcmVQdHIoc2NyYXRjaEdQUiwgYWRkcmVzc0Zvcih2aXJ0dWFs
UmVnaXN0ZXIpKTsKLQotICAgICAgICBpZiAoc2NyYXRjaEZQUjEgPT0gSW52YWxpZEZQUlJlZykK
LSAgICAgICAgICAgIHNjcmF0Y2hGUFIxID0gRlBSSW5mbzo6dG9SZWdpc3RlcihpbmRleCk7Ci0g
ICAgICAgIGVsc2UgaWYgKHNjcmF0Y2hGUFIyKQotICAgICAgICAgICAgc2NyYXRjaEZQUjIgPSBG
UFJJbmZvOjp0b1JlZ2lzdGVyKGluZGV4KTsKLSAgICAgICAgQVNTRVJUKChzY3JhdGNoRlBSMSA9
PSBJbnZhbGlkRlBSUmVnICYmIHNjcmF0Y2hGUFIyID09IEludmFsaWRGUFJSZWcpIHx8IChzY3Jh
dGNoRlBSMSAhPSBzY3JhdGNoRlBSMikpOwogICAgIH0KICAgICAKKyNpZiAhQVNTRVJUX0RJU0FC
TEVECisgICAgLy8gQXNzZXJ0IHRoYXQgd2UndmUgbm90IGFzc2lnbmVkIGEgc2NyYXRjaCByZWdp
c3RlciB0byBzb21ldGhpbmcgdGhhdCB3ZSdyZSBnb2luZyB0byBzaHVmZmxlLgorICAgIEFTU0VS
VChzY3JhdGNoR1BSICE9IEludmFsaWRHUFJSZWcpOworICAgIGlmIChzY3JhdGNoR1BSICE9IEdQ
UkluZm86OnRhZ01hc2tSZWdpc3RlcikgeworICAgICAgICBBU1NFUlQoIWdwcnNbR1BSSW5mbzo6
dG9JbmRleChzY3JhdGNoR1BSKV0uaGFzVG8pOworICAgICAgICBBU1NFUlQoIWdwcnNbR1BSSW5m
bzo6dG9JbmRleChzY3JhdGNoR1BSKV0uaGFzRnJvbSk7CisgICAgfQorICAgIGlmIChzY3JhdGNo
RlBSMSAhPSBJbnZhbGlkRlBSUmVnKSB7CisgICAgICAgIEFTU0VSVChzY3JhdGNoRlBSMSAhPSBz
Y3JhdGNoRlBSMik7CisgICAgICAgIEFTU0VSVCghZnByc1tGUFJJbmZvOjp0b0luZGV4KHNjcmF0
Y2hGUFIxKV0uaGFzVG8pOworICAgICAgICBBU1NFUlQoIWZwcnNbRlBSSW5mbzo6dG9JbmRleChz
Y3JhdGNoRlBSMSldLmhhc0Zyb20pOworICAgICAgICBpZiAoc2NyYXRjaEZQUjIgIT0gSW52YWxp
ZEZQUlJlZykgeworICAgICAgICAgICAgQVNTRVJUKCFmcHJzW0ZQUkluZm86OnRvSW5kZXgoc2Ny
YXRjaEZQUjIpXS5oYXNUbyk7CisgICAgICAgICAgICBBU1NFUlQoIWZwcnNbRlBSSW5mbzo6dG9J
bmRleChzY3JhdGNoRlBSMildLmhhc0Zyb20pOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAg
ICAgIEFTU0VSVChzY3JhdGNoRlBSMiA9PSBJbnZhbGlkRlBSUmVnKTsKKyNlbmRpZgorICAgIAog
ICAgIC8vIFBhcnQgMjogRm9yIHRoZSBzZXQgb2Ygbm9kZXMgdGhhdCBhcmUgaW4gcmVnaXN0ZXJz
IG9uIGJvdGggcGF0aHMsCiAgICAgLy8gICAgICAgICBwZXJmb3JtIGEgc2h1ZmZsaW5nLgogICAg
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103683</attachid>
            <date>2011-08-11 15:17:18 -0700</date>
            <delta_ts>2011-08-11 20:42:02 -0700</delta_ts>
            <desc>the patch (fix style)</desc>
            <filename>fixspecfail_patch_2.diff</filename>
            <type>text/plain</type>
            <size>5990</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTI4ODMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTEtMDgtMTEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIHNwZWN1bGF0aW9uIGZhaWx1cmUgY29kZSBzb21ldGltZXMgcGlja3MgdGhlIHdyb25n
IHJlZ2lzdGVyCisgICAgICAgIGFzIGEgc2NyYXRjaCByZWdpc3Rlci4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MTA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBIYXJkZW5lZCB0aGUgY29k
ZSB3aXRoIG1vcmUgYXNzZXJ0aW9ucyBhbmQgZml4ZWQgdGhlIGJ1Zy4gIE5vdyBhCisgICAgICAg
IHNwaWxsZWQgcmVnaXN0ZXIgaXMgb25seSB1c2VkIGZvciBzY3JhdGNoIGlmIGl0IGFsc28gaXNu
J3QgYmVpbmcKKyAgICAgICAgdXNlZCBmb3Igc2h1ZmZsaW5nLgorCisgICAgICAgICogZGZnL0RG
R0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTaHVmZmxlZFJlZ2lzdGVyOjpo
YW5kbGVOb25DeWNsaW5nUGVybXV0YXRpb24pOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBp
bGVyOjpqdW1wRnJvbVNwZWN1bGF0aXZlVG9Ob25TcGVjdWxhdGl2ZSk6CisKIDIwMTEtMDgtMTEg
IEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBudWxscHRy
IGNhbid0IGJlIHVzZWQgZm9yIFBhc3NSZWZQdHIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCShyZXZpc2lvbiA5Mjg4MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MjYsOCArMzI2LDEwIEBAIHN0cnVjdCBTaHVmZmxlZFJlZ2lzdGVyIHsKICAgICAgICAgICAgIGlm
IChjdXItPnJlZy5pc0ZQUigpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHNjcmF0Y2hGUFIxID09
IEludmFsaWRGUFJSZWcpCiAgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2hGUFIxID0gY3VyLT5y
ZWcuZnByKCk7Ci0gICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc2NyYXRjaEZQUjEgIT0gY3VyLT5yZWcuZnByKCkp
OwogICAgICAgICAgICAgICAgICAgICBzY3JhdGNoRlBSMiA9IGN1ci0+cmVnLmZwcigpOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGN1ciA9IGN1ci0+cHJl
dmlvdXM7CiAgICAgICAgIH0KQEAgLTMzNSw4ICszMzcsMTAgQEAgc3RydWN0IFNodWZmbGVkUmVn
aXN0ZXIgewogICAgICAgICBpZiAoY3VyLT5yZWcuaXNGUFIoKSkgewogICAgICAgICAgICAgaWYg
KHNjcmF0Y2hGUFIxID09IEludmFsaWRGUFJSZWcpCiAgICAgICAgICAgICAgICAgc2NyYXRjaEZQ
UjEgPSBjdXItPnJlZy5mcHIoKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgIEFTU0VSVChzY3JhdGNoRlBSMSAhPSBjdXItPnJlZy5mcHIoKSk7
CiAgICAgICAgICAgICAgICAgc2NyYXRjaEZQUjIgPSBjdXItPnJlZy5mcHIoKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTU2OCwxMCArNTcyLDggQEAgdm9pZCBK
SVRDb21waWxlcjo6anVtcEZyb21TcGVjdWxhdGl2ZVRvTgogICAgICAgICBOb2RlSW5kZXggbm9k
ZUluZGV4ID0gY2hlY2subV9ncHJJbmZvW2luZGV4XS5ub2RlSW5kZXg7CiAgICAgICAgIAogICAg
ICAgICAvLyBCYWlsIG91dCBpZiB0aGlzIHJlZ2lzdGVyIGlzbid0IGFzc2lnbmVkIHRvIGFueXRo
aW5nLgotICAgICAgICBpZiAobm9kZUluZGV4ID09IE5vTm9kZSkgewotICAgICAgICAgICAgc2Ny
YXRjaEdQUiA9IEdQUkluZm86OnRvUmVnaXN0ZXIoaW5kZXgpOworICAgICAgICBpZiAobm9kZUlu
ZGV4ID09IE5vTm9kZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9CiAgICAgICAg
IAogICAgICAgICAvLyBJZiB0aGUgbm9uLXNwZWN1bGF0aXZlIHBhdGggYWxzbyBoYXMgYSByZWdp
c3RlciBmb3IgdGhlIG5vZGVJbmRleCB0aGF0IHRoaXMKICAgICAgICAgLy8gcmVnaXN0ZXIgc3Rv
cmVzLCBsaW5rIHRoZW0gdG9nZXRoZXIuCkBAIC01ODcsNiArNTg5LDEyIEBAIHZvaWQgSklUQ29t
cGlsZXI6Omp1bXBGcm9tU3BlY3VsYXRpdmVUb04KICAgICAgICAgICAgIC8vIHBhcnQgYmVsb3cg
cmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgc3BlY3VsYXRpdmUgcGF0aCBoYXMgc3Bp
bGxlZCBpdC4KICAgICAgICAgICAgIGlmICghbWFwSXRlcmF0b3ItPnNlY29uZC5maW5kSW5FbnRy
eUxvY2F0aW9uKGVudHJ5KS5pc1NwaWxsZWQpCiAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgbm9uLXNwZWN1bGF0aXZlIGVu
dHJ5IGlzbid0IHVzaW5nIHRoaXMgcmVnaXN0ZXIgYW5kIGl0IGRvZXMgbm90IG5lZWQKKyAgICAg
ICAgICAgIC8vIHRoZSB2YWx1ZSBpbiB0aGlzIHJlZ2lzdGVyIHRvIGJlIHBsYWNlZCBpbnRvIGFu
eSBvdGhlciByZWdpc3RlciwgdGhlbiB0aGlzCisgICAgICAgICAgICAvLyByZWdpc3RlciBjYW4g
YmUgdXNlZCBmb3Igc2NyYXRjaC4KKyAgICAgICAgICAgIGlmIChlbnRyeS5tX2dwckluZm9baW5k
ZXhdLm5vZGVJbmRleCA9PSBOb05vZGUpCisgICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IEdQ
UkluZm86OnRvUmVnaXN0ZXIoaW5kZXgpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAv
LyBJZiB0aGUgc3BlY3VsYXRpdmUgcGF0aCBoYXMgYWxyZWFkeSBzcGlsbGVkIHRoZSByZWdpc3Rl
ciB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8KQEAgLTYwMSw4ICs2MDksNiBAQCB2b2lkIEpJVENv
bXBpbGVyOjpqdW1wRnJvbVNwZWN1bGF0aXZlVG9OCiAgICAgICAgIGlmIChkYXRhRm9ybWF0ID09
IERhdGFGb3JtYXRJbnRlZ2VyKQogICAgICAgICAgICAgb3JQdHIoR1BSSW5mbzo6dGFnVHlwZU51
bWJlclJlZ2lzdGVyLCBHUFJJbmZvOjp0b1JlZ2lzdGVyKGluZGV4KSk7CiAgICAgICAgIHN0b3Jl
UHRyKEdQUkluZm86OnRvUmVnaXN0ZXIoaW5kZXgpLCBhZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3Rl
cikpOwotICAgICAgICAKLSAgICAgICAgc2NyYXRjaEdQUiA9IEdQUkluZm86OnRvUmVnaXN0ZXIo
aW5kZXgpOwogICAgIH0KICAgICAKICAgICBpZiAoc2NyYXRjaEdQUiA9PSBJbnZhbGlkR1BSUmVn
KSB7CkBAIC02MjUsNiArNjMxLDE3IEBAIHZvaWQgSklUQ29tcGlsZXI6Omp1bXBGcm9tU3BlY3Vs
YXRpdmVUb04KIAogICAgICAgICAgICAgaWYgKCFtYXBJdGVyYXRvci0+c2Vjb25kLmZpbmRJbkVu
dHJ5TG9jYXRpb24oZW50cnkpLmlzU3BpbGxlZCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBub24tc3BlY3VsYXRpdmUg
ZW50cnkgaXNuJ3QgdXNpbmcgdGhpcyByZWdpc3RlciBhbmQgaXQgZG9lcyBub3QgbmVlZAorICAg
ICAgICAgICAgLy8gdGhlIHZhbHVlIGluIHRoaXMgcmVnaXN0ZXIgdG8gYmUgcGxhY2VkIGludG8g
YW55IG90aGVyIHJlZ2lzdGVyLCB0aGVuIHRoaXMKKyAgICAgICAgICAgIC8vIHJlZ2lzdGVyIGNh
biBiZSB1c2VkIGZvciBzY3JhdGNoLgorICAgICAgICAgICAgaWYgKGVudHJ5Lm1fZnBySW5mb1tp
bmRleF0ubm9kZUluZGV4ID09IE5vTm9kZSkgeworICAgICAgICAgICAgICAgIGlmIChzY3JhdGNo
RlBSMSA9PSBJbnZhbGlkRlBSUmVnKQorICAgICAgICAgICAgICAgICAgICBzY3JhdGNoRlBSMSA9
IEZQUkluZm86OnRvUmVnaXN0ZXIoaW5kZXgpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNj
cmF0Y2hGUFIyKQorICAgICAgICAgICAgICAgICAgICBzY3JhdGNoRlBSMiA9IEZQUkluZm86OnRv
UmVnaXN0ZXIoaW5kZXgpOworICAgICAgICAgICAgICAgIEFTU0VSVCgoc2NyYXRjaEZQUjEgPT0g
SW52YWxpZEZQUlJlZyAmJiBzY3JhdGNoRlBSMiA9PSBJbnZhbGlkRlBSUmVnKSB8fCAoc2NyYXRj
aEZQUjEgIT0gc2NyYXRjaEZQUjIpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgaWYgKGNoZWNrLm1fZnBySW5mb1tpbmRleF0uaXNTcGlsbGVkKQpAQCAtNjM1
LDE0ICs2NTIsMjcgQEAgdm9pZCBKSVRDb21waWxlcjo6anVtcEZyb21TcGVjdWxhdGl2ZVRvTgog
ICAgICAgICBtb3ZlRG91YmxlVG9QdHIoRlBSSW5mbzo6dG9SZWdpc3RlcihpbmRleCksIHNjcmF0
Y2hHUFIpOwogICAgICAgICBzdWJQdHIoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBz
Y3JhdGNoR1BSKTsKICAgICAgICAgc3RvcmVQdHIoc2NyYXRjaEdQUiwgYWRkcmVzc0Zvcih2aXJ0
dWFsUmVnaXN0ZXIpKTsKLQotICAgICAgICBpZiAoc2NyYXRjaEZQUjEgPT0gSW52YWxpZEZQUlJl
ZykKLSAgICAgICAgICAgIHNjcmF0Y2hGUFIxID0gRlBSSW5mbzo6dG9SZWdpc3RlcihpbmRleCk7
Ci0gICAgICAgIGVsc2UgaWYgKHNjcmF0Y2hGUFIyKQotICAgICAgICAgICAgc2NyYXRjaEZQUjIg
PSBGUFJJbmZvOjp0b1JlZ2lzdGVyKGluZGV4KTsKLSAgICAgICAgQVNTRVJUKChzY3JhdGNoRlBS
MSA9PSBJbnZhbGlkRlBSUmVnICYmIHNjcmF0Y2hGUFIyID09IEludmFsaWRGUFJSZWcpIHx8IChz
Y3JhdGNoRlBSMSAhPSBzY3JhdGNoRlBSMikpOwogICAgIH0KICAgICAKKyNpZiAhQVNTRVJUX0RJ
U0FCTEVECisgICAgLy8gQXNzZXJ0IHRoYXQgd2UndmUgbm90IGFzc2lnbmVkIGEgc2NyYXRjaCBy
ZWdpc3RlciB0byBzb21ldGhpbmcgdGhhdCB3ZSdyZSBnb2luZyB0byBzaHVmZmxlLgorICAgIEFT
U0VSVChzY3JhdGNoR1BSICE9IEludmFsaWRHUFJSZWcpOworICAgIGlmIChzY3JhdGNoR1BSICE9
IEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikgeworICAgICAgICBBU1NFUlQoIWdwcnNbR1BSSW5m
bzo6dG9JbmRleChzY3JhdGNoR1BSKV0uaGFzVG8pOworICAgICAgICBBU1NFUlQoIWdwcnNbR1BS
SW5mbzo6dG9JbmRleChzY3JhdGNoR1BSKV0uaGFzRnJvbSk7CisgICAgfQorICAgIGlmIChzY3Jh
dGNoRlBSMSAhPSBJbnZhbGlkRlBSUmVnKSB7CisgICAgICAgIEFTU0VSVChzY3JhdGNoRlBSMSAh
PSBzY3JhdGNoRlBSMik7CisgICAgICAgIEFTU0VSVCghZnByc1tGUFJJbmZvOjp0b0luZGV4KHNj
cmF0Y2hGUFIxKV0uaGFzVG8pOworICAgICAgICBBU1NFUlQoIWZwcnNbRlBSSW5mbzo6dG9JbmRl
eChzY3JhdGNoRlBSMSldLmhhc0Zyb20pOworICAgICAgICBpZiAoc2NyYXRjaEZQUjIgIT0gSW52
YWxpZEZQUlJlZykgeworICAgICAgICAgICAgQVNTRVJUKCFmcHJzW0ZQUkluZm86OnRvSW5kZXgo
c2NyYXRjaEZQUjIpXS5oYXNUbyk7CisgICAgICAgICAgICBBU1NFUlQoIWZwcnNbRlBSSW5mbzo6
dG9JbmRleChzY3JhdGNoRlBSMildLmhhc0Zyb20pOworICAgICAgICB9CisgICAgfSBlbHNlCisg
ICAgICAgIEFTU0VSVChzY3JhdGNoRlBSMiA9PSBJbnZhbGlkRlBSUmVnKTsKKyNlbmRpZgorICAg
IAogICAgIC8vIFBhcnQgMjogRm9yIHRoZSBzZXQgb2Ygbm9kZXMgdGhhdCBhcmUgaW4gcmVnaXN0
ZXJzIG9uIGJvdGggcGF0aHMsCiAgICAgLy8gICAgICAgICBwZXJmb3JtIGEgc2h1ZmZsaW5nLgog
ICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>