<?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>110179</bug_id>
          
          <creation_ts>2013-02-18 22:41:31 -0800</creation_ts>
          <short_desc>Save space on keys in the CodeCache</short_desc>
          <delta_ts>2013-02-19 14:31: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>New Bugs</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>
          <dependson>110242</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>kling</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>835978</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-18 22:41:31 -0800</bug_when>
    <thetext>Save space on keys in the CodeCache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835992</commentid>
    <comment_count>1</comment_count>
      <attachid>188996</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-18 22:59:44 -0800</bug_when>
    <thetext>Created attachment 188996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835995</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 23:02:11 -0800</bug_when>
    <thetext>Attachment 188996 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/JavaScriptCore/runtime/CodeCache.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/CodeCache.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/runtime/CodeCache.h:60:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/JavaScriptCore/runtime/CodeCache.h:61:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 3 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>836052</commentid>
    <comment_count>3</comment_count>
      <attachid>188996</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-02-18 23:59:30 -0800</bug_when>
    <thetext>Comment on attachment 188996
Patch

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

&gt; Source/JavaScriptCore/runtime/CodeCache.h:86
&gt; +    size_t length() const { return string().length(); }

Wouldn&apos;t it be cheaper to call m_sourceCode.length() here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836427</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-19 08:35:48 -0800</bug_when>
    <thetext>&gt; &gt; Source/JavaScriptCore/runtime/CodeCache.h:86
&gt; &gt; +    size_t length() const { return string().length(); }
&gt; 
&gt; Wouldn&apos;t it be cheaper to call m_sourceCode.length() here?

It would! Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836469</commentid>
    <comment_count>5</comment_count>
      <attachid>188996</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-02-19 09:08:23 -0800</bug_when>
    <thetext>Comment on attachment 188996
Patch

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

&gt; Source/JavaScriptCore/runtime/CodeCache.h:58
&gt; -    enum CodeType { EvalType, ProgramType, FunctionCallType, FunctionConstructType };
&gt; +    enum CodeType { EvalType, ProgramType, FunctionType };

Where is FunctionType used? I&apos;m not sure where the CodeCache can directly interact with Functions now, and a brief looksy doesn&apos;t seem to imply that it does.  The FunctionType enum should be removed as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836482</commentid>
    <comment_count>6</comment_count>
      <attachid>189104</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-19 09:32:28 -0800</bug_when>
    <thetext>Created attachment 189104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836484</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-19 09:33:34 -0800</bug_when>
    <thetext>&gt; Where is FunctionType used?

FunctionType is used by &apos;new Function&apos;, which is still cached. (See getFunctionExecutableFromGlobalCode.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836485</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-19 09:34:22 -0800</bug_when>
    <thetext>Incorporated Andreas&apos;s fix, which in turn showed some more opportunities for simplifying based on m_sourceCode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836486</commentid>
    <comment_count>9</comment_count>
      <attachid>189104</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-02-19 09:36:28 -0800</bug_when>
    <thetext>Comment on attachment 189104
Patch

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

&gt; Source/JavaScriptCore/runtime/CodeCache.h:94
&gt; -            &amp;&amp; m_sourceString == other.m_sourceString;
&gt; +            &amp;&amp; string() == other.string();

You could add a length check here as well, to further minimize the chance of having to incorrectly reify the string</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836488</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-19 09:39:16 -0800</bug_when>
    <thetext>&gt; You could add a length check here as well, to further minimize the chance of having to incorrectly reify the string

Nice! I didn&apos;t do that before because length() was expensive; but now it&apos;s inexpensive, so I will.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836495</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-19 09:49:48 -0800</bug_when>
    <thetext>Committed r143348: &lt;http://trac.webkit.org/changeset/143348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836595</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 11:32:53 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 110242</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836788</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-19 14:31:16 -0800</bug_when>
    <thetext>Re-landed in &lt;http://trac.webkit.org/changeset/143384&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188996</attachid>
            <date>2013-02-18 22:59:44 -0800</date>
            <delta_ts>2013-02-19 09:32:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110179-20130218225607.patch</filename>
            <type>text/plain</type>
            <size>5083</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzMjk2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDEzLTAyLTE4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU2F2ZSBzcGFjZSBvbiBrZXlzIGluIHRoZSBDb2RlQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDE3OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNoYXJlIHRoZSBTb3VyY2VQcm92aWRlcidz
IHN0cmluZyBpbnN0ZWFkIG9mIG1ha2luZyBvdXIgb3duIGNvcHkuCisKKyAgICAgICAgKiBydW50
aW1lL0NvZGVDYWNoZS5jcHA6CisgICAgICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0RnVuY3Rpb25F
eGVjdXRhYmxlRnJvbUdsb2JhbENvZGUpOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hlLmg6
IFJlbW92ZWQgYSBkZWZ1bmN0IGVudW0gdmFsdWUuCisKKworICAgICAgICAoSlNDOjpTb3VyY2VD
b2RlS2V5OjpTb3VyY2VDb2RlS2V5KToKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZUtleTo6aXNI
YXNoVGFibGVEZWxldGVkVmFsdWUpOgorICAgICAgICAoU291cmNlQ29kZUtleSk6CisgICAgICAg
IChKU0M6OlNvdXJjZUNvZGVLZXk6Omhhc2gpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlS2V5
OjpsZW5ndGgpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlS2V5Ojppc051bGwpOgorICAgICAg
ICAoSlNDOjpTb3VyY2VDb2RlS2V5OjpzdHJpbmcpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2Rl
S2V5OjpvcGVyYXRvcj09KTogU3RvcmUgYSBTb3VyY2VDb2RlIGluc3RlYWQgb2YgYSBTdHJpbmcK
KyAgICAgICAgc28gd2UgY2FuIHNoYXJlIG91ciBzdHJpbmcgd2l0aCBvdXIgU291cmNlUHJvdmlk
ZXIuIENhY2hlIG91ciBoYXNoIHNvCisgICAgICAgIHdlIGRvbid0IGhhdmUgdG8gcmUtZGVjb2Rl
IG91ciBzdHJpbmcganVzdCB0byByZS1oYXNoIHRoZSB0YWJsZS4KKworICAgICAgICAoU291cmNl
Q29kZUtleUhhc2hUcmFpdHMpOiBFbXB0eSB2YWx1ZSBpc24ndCB6ZXJvIGFueW1vcmUsIHNpbmNl
IHdlIHVzZQorICAgICAgICBzcGVjaWFsIGZsYWdzIGZvciB0aGF0LgorCiAyMDEzLTAyLTE4ICBJ
bHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkIGJ1aWxkIGZpeCBmb3IgQXBwbGUgV2luZG93cy4gU2Vjb25kIHN0YWdlLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCShyZXZpc2lvbiAxNDMy
NzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDUsNyArMTA1LDcgQEAgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBDb2Rl
Q2FjaGU6OmdldEV2YQogCiBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogQ29kZUNhY2hlOjpn
ZXRGdW5jdGlvbkV4ZWN1dGFibGVGcm9tR2xvYmFsQ29kZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFy
c2VyRXJyb3ImIGVycm9yKQogewotICAgIFNvdXJjZUNvZGVLZXkga2V5ID0gU291cmNlQ29kZUtl
eShzb3VyY2UsIG5hbWUuc3RyaW5nKCksIFNvdXJjZUNvZGVLZXk6OkZ1bmN0aW9uQ2FsbFR5cGUs
IEpTUGFyc2VOb3JtYWwpOworICAgIFNvdXJjZUNvZGVLZXkga2V5ID0gU291cmNlQ29kZUtleShz
b3VyY2UsIG5hbWUuc3RyaW5nKCksIFNvdXJjZUNvZGVLZXk6OkZ1bmN0aW9uVHlwZSwgSlNQYXJz
ZU5vcm1hbCk7CiAgICAgY29uc3QgU3Ryb25nPEpTQ2VsbD4qIHJlc3VsdCA9IG1fc291cmNlQ29k
ZS5maW5kKGtleSk7CiAgICAgaWYgKHJlc3VsdCkKICAgICAgICAgcmV0dXJuIGpzQ2FzdDxVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSo+KHJlc3VsdC0+Z2V0KCkpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgJKHJldmlzaW9uIDE0MzI3OCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC01NSw0NCArNTUsNTUgQEAgY2xhc3MgU291cmNlUHJvdmlkZXI7CiAKIGNsYXNzIFNvdXJjZUNv
ZGVLZXkgewogcHVibGljOgotICAgIGVudW0gQ29kZVR5cGUgeyBFdmFsVHlwZSwgUHJvZ3JhbVR5
cGUsIEZ1bmN0aW9uQ2FsbFR5cGUsIEZ1bmN0aW9uQ29uc3RydWN0VHlwZSB9OworICAgIGVudW0g
Q29kZVR5cGUgeyBFdmFsVHlwZSwgUHJvZ3JhbVR5cGUsIEZ1bmN0aW9uVHlwZSB9OworCisgICAg
ZW51bSB7IG51bGxWYWx1ZUZsYWdzID0gMHhmZmZlIH07CisgICAgZW51bSB7IGRlbGV0ZWRWYWx1
ZUZsYWdzID0gMHhmZmZmIH07CiAKICAgICBTb3VyY2VDb2RlS2V5KCkKLSAgICAgICAgOiBtX2Zs
YWdzKDApCisgICAgICAgIDogbV9mbGFncyhudWxsVmFsdWVGbGFncykKICAgICB7CiAgICAgfQog
CiAgICAgU291cmNlQ29kZUtleShjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBjb25zdCBT
dHJpbmcmIG5hbWUsIENvZGVUeXBlIGNvZGVUeXBlLCBKU1BhcnNlclN0cmljdG5lc3MganNQYXJz
ZXJTdHJpY3RuZXNzKQotICAgICAgICA6IG1fc291cmNlU3RyaW5nKHNvdXJjZUNvZGUudG9TdHJp
bmcoKSkKKyAgICAgICAgOiBtX3NvdXJjZUNvZGUoc291cmNlQ29kZSkKICAgICAgICAgLCBtX25h
bWUobmFtZSkKICAgICAgICAgLCBtX2ZsYWdzKChjb2RlVHlwZSA8PCAxKSB8IGpzUGFyc2VyU3Ry
aWN0bmVzcykKKyAgICAgICAgLCBtX2hhc2goc3RyaW5nKCkuaW1wbCgpLT5oYXNoKCkpCiAgICAg
eworICAgICAgICBBU1NFUlQobV9mbGFncyAhPSBudWxsVmFsdWVGbGFncyAmJiBtX2ZsYWdzICE9
IGRlbGV0ZWRWYWx1ZUZsYWdzKTsKICAgICB9CiAKICAgICBTb3VyY2VDb2RlS2V5KFdURjo6SGFz
aFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKLSAgICAgICAgOiBtX3NvdXJjZVN0cmluZyhXVEY6Okhh
c2hUYWJsZURlbGV0ZWRWYWx1ZSkKKyAgICAgICAgOiBtX2ZsYWdzKGRlbGV0ZWRWYWx1ZUZsYWdz
KQogICAgIHsKICAgICB9CiAKLSAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9zb3VyY2VTdHJpbmcuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQor
ICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdz
ID09IGRlbGV0ZWRWYWx1ZUZsYWdzOyB9CisKKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNoOyB9CiAKLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2VTdHJpbmcuaW1wbCgpLT5oYXNoKCk7IH0KKyAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3Qg
eyByZXR1cm4gc3RyaW5nKCkubGVuZ3RoKCk7IH0KIAotICAgIHNpemVfdCBsZW5ndGgoKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZVN0cmluZy5sZW5ndGgoKTsgfQorICAgIGJvb2wgaXNOdWxsKCkg
Y29uc3QgeyByZXR1cm4gbV9mbGFncyA9PSBudWxsVmFsdWVGbGFnczsgfQogCi0gICAgYm9vbCBp
c051bGwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVN0cmluZy5pc051bGwoKTsgfQorICAgIC8v
IFRvIHNhdmUgbWVtb3J5LCB3ZSBjb21wdXRlIG91ciBzdHJpbmcgb24gZGVtYW5kLiBJdCdzIGV4
cGVjdGVkIHRoYXQgc291cmNlCisgICAgLy8gcHJvdmlkZXJzIGNhY2hlIHRoZWlyIHN0cmluZ3Mg
dG8gbWFrZSB0aGlzIGVmZmljaWVudC4KKyAgICBTdHJpbmcgc3RyaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2VDb2RlLnRvU3RyaW5nKCk7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBTb3VyY2VDb2RlS2V5JiBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2Zs
YWdzID09IG90aGVyLm1fZmxhZ3MKKyAgICAgICAgcmV0dXJuIG1faGFzaCA9PSBvdGhlci5tX2hh
c2gKKyAgICAgICAgICAgICYmIG1fZmxhZ3MgPT0gb3RoZXIubV9mbGFncwogICAgICAgICAgICAg
JiYgbV9uYW1lID09IG90aGVyLm1fbmFtZQotICAgICAgICAgICAgJiYgbV9zb3VyY2VTdHJpbmcg
PT0gb3RoZXIubV9zb3VyY2VTdHJpbmc7CisgICAgICAgICAgICAmJiBzdHJpbmcoKSA9PSBvdGhl
ci5zdHJpbmcoKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU3RyaW5nIG1fc291cmNlU3RyaW5n
OworICAgIFNvdXJjZUNvZGUgbV9zb3VyY2VDb2RlOwogICAgIFN0cmluZyBtX25hbWU7CiAgICAg
dW5zaWduZWQgbV9mbGFnczsKKyAgICB1bnNpZ25lZCBtX2hhc2g7CiB9OwogCiBzdHJ1Y3QgU291
cmNlQ29kZUtleUhhc2ggewpAQCAtMTAyLDYgKzExMyw3IEBAIHN0cnVjdCBTb3VyY2VDb2RlS2V5
SGFzaCB7CiB9OwogCiBzdHJ1Y3QgU291cmNlQ29kZUtleUhhc2hUcmFpdHMgOiBTaW1wbGVDbGFz
c0hhc2hUcmFpdHM8U291cmNlQ29kZUtleT4geworICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5
VmFsdWVJc1plcm8gPSBmYWxzZTsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBoYXNJc0VtcHR5VmFs
dWVGdW5jdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKGNvbnN0IFNv
dXJjZUNvZGVLZXkmIHNvdXJjZUNvZGVLZXkpIHsgcmV0dXJuIHNvdXJjZUNvZGVLZXkuaXNOdWxs
KCk7IH0KIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189104</attachid>
            <date>2013-02-19 09:32:28 -0800</date>
            <delta_ts>2013-02-19 09:36:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110179-20130219092850.patch</filename>
            <type>text/plain</type>
            <size>4448</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzMjk2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDEzLTAyLTE4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU2F2ZSBzcGFjZSBvbiBrZXlzIGluIHRoZSBDb2RlQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDE3OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNoYXJlIHRoZSBTb3VyY2VQcm92aWRlcidz
IHN0cmluZyBpbnN0ZWFkIG9mIG1ha2luZyBvdXIgb3duIGNvcHkuCisKKyAgICAgICAgKiBydW50
aW1lL0NvZGVDYWNoZS5jcHA6CisgICAgICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0RnVuY3Rpb25F
eGVjdXRhYmxlRnJvbUdsb2JhbENvZGUpOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hlLmg6
IFJlbW92ZWQgYSBkZWZ1bmN0IGVudW0gdmFsdWUuCisKKyAgICAgICAgKEpTQzo6U291cmNlQ29k
ZUtleTo6U291cmNlQ29kZUtleSk6CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGVLZXk6OmlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFNvdXJjZUNvZGVLZXkpOgorICAgICAgICAo
SlNDOjpTb3VyY2VDb2RlS2V5OjpoYXNoKToKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZUtleTo6
bGVuZ3RoKToKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZUtleTo6aXNOdWxsKToKKyAgICAgICAg
KEpTQzo6U291cmNlQ29kZUtleTo6c3RyaW5nKToKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZUtl
eTo6b3BlcmF0b3I9PSk6IFN0b3JlIGEgU291cmNlQ29kZSBpbnN0ZWFkIG9mIGEgU3RyaW5nCisg
ICAgICAgIHNvIHdlIGNhbiBzaGFyZSBvdXIgc3RyaW5nIHdpdGggb3VyIFNvdXJjZVByb3ZpZGVy
LiBDYWNoZSBvdXIgaGFzaCBzbworICAgICAgICB3ZSBkb24ndCBoYXZlIHRvIHJlLWRlY29kZSBv
dXIgc3RyaW5nIGp1c3QgdG8gcmUtaGFzaCB0aGUgdGFibGUuCisKIDIwMTMtMDItMTggIElseWEg
VGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
YnVpbGQgZml4IGZvciBBcHBsZSBXaW5kb3dzLiBTZWNvbmQgc3RhZ2UuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHJldmlzaW9uIDE0MzI3OCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNSw3ICsxMDUsNyBAQCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIENvZGVDYWNo
ZTo6Z2V0RXZhCiAKIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDb2RlQ2FjaGU6OmdldEZ1
bmN0aW9uRXhlY3V0YWJsZUZyb21HbG9iYWxDb2RlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBQYXJzZXJF
cnJvciYgZXJyb3IpCiB7Ci0gICAgU291cmNlQ29kZUtleSBrZXkgPSBTb3VyY2VDb2RlS2V5KHNv
dXJjZSwgbmFtZS5zdHJpbmcoKSwgU291cmNlQ29kZUtleTo6RnVuY3Rpb25DYWxsVHlwZSwgSlNQ
YXJzZU5vcm1hbCk7CisgICAgU291cmNlQ29kZUtleSBrZXkgPSBTb3VyY2VDb2RlS2V5KHNvdXJj
ZSwgbmFtZS5zdHJpbmcoKSwgU291cmNlQ29kZUtleTo6RnVuY3Rpb25UeXBlLCBKU1BhcnNlTm9y
bWFsKTsKICAgICBjb25zdCBTdHJvbmc8SlNDZWxsPiogcmVzdWx0ID0gbV9zb3VyY2VDb2RlLmZp
bmQoa2V5KTsKICAgICBpZiAocmVzdWx0KQogICAgICAgICByZXR1cm4ganNDYXN0PFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKj4ocmVzdWx0LT5nZXQoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAkocmV2aXNpb24gMTQzMjc4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDQ0ICs1NSw1MCBAQCBjbGFzcyBTb3VyY2VQcm92aWRlcjsKIAogY2xhc3MgU291cmNlQ29kZUtl
eSB7CiBwdWJsaWM6Ci0gICAgZW51bSBDb2RlVHlwZSB7IEV2YWxUeXBlLCBQcm9ncmFtVHlwZSwg
RnVuY3Rpb25DYWxsVHlwZSwgRnVuY3Rpb25Db25zdHJ1Y3RUeXBlIH07CisgICAgZW51bSBDb2Rl
VHlwZSB7IEV2YWxUeXBlLCBQcm9ncmFtVHlwZSwgRnVuY3Rpb25UeXBlIH07CiAKICAgICBTb3Vy
Y2VDb2RlS2V5KCkKLSAgICAgICAgOiBtX2ZsYWdzKDApCiAgICAgewogICAgIH0KIAogICAgIFNv
dXJjZUNvZGVLZXkoY29uc3QgU291cmNlQ29kZSYgc291cmNlQ29kZSwgY29uc3QgU3RyaW5nJiBu
YW1lLCBDb2RlVHlwZSBjb2RlVHlwZSwgSlNQYXJzZXJTdHJpY3RuZXNzIGpzUGFyc2VyU3RyaWN0
bmVzcykKLSAgICAgICAgOiBtX3NvdXJjZVN0cmluZyhzb3VyY2VDb2RlLnRvU3RyaW5nKCkpCisg
ICAgICAgIDogbV9zb3VyY2VDb2RlKHNvdXJjZUNvZGUpCiAgICAgICAgICwgbV9uYW1lKG5hbWUp
CiAgICAgICAgICwgbV9mbGFncygoY29kZVR5cGUgPDwgMSkgfCBqc1BhcnNlclN0cmljdG5lc3Mp
CisgICAgICAgICwgbV9oYXNoKHN0cmluZygpLmltcGwoKS0+aGFzaCgpKQogICAgIHsKICAgICB9
CiAKICAgICBTb3VyY2VDb2RlS2V5KFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKLSAg
ICAgICAgOiBtX3NvdXJjZVN0cmluZyhXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkKKyAgICAg
ICAgOiBtX25hbWUoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUpCiAgICAgewogICAgIH0KIAot
ICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJj
ZVN0cmluZy5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CisgICAgYm9vbCBpc0hhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZS5pc0hhc2hUYWJsZURlbGV0ZWRW
YWx1ZSgpOyB9CiAKLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VT
dHJpbmcuaW1wbCgpLT5oYXNoKCk7IH0KKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNoOyB9CiAKLSAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2VTdHJpbmcubGVuZ3RoKCk7IH0KKyAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
bV9zb3VyY2VDb2RlLmxlbmd0aCgpOyB9CiAKLSAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0
dXJuIG1fc291cmNlU3RyaW5nLmlzTnVsbCgpOyB9CisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZUNvZGUuaXNOdWxsKCk7IH0KKworICAgIC8vIFRvIHNhdmUgbWVtb3J5
LCB3ZSBjb21wdXRlIG91ciBzdHJpbmcgb24gZGVtYW5kLiBJdCdzIGV4cGVjdGVkIHRoYXQgc291
cmNlCisgICAgLy8gcHJvdmlkZXJzIGNhY2hlIHRoZWlyIHN0cmluZ3MgdG8gbWFrZSB0aGlzIGVm
ZmljaWVudC4KKyAgICBTdHJpbmcgc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VDb2Rl
LnRvU3RyaW5nKCk7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2VDb2RlS2V5
JiBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2ZsYWdzID09IG90aGVyLm1f
ZmxhZ3MKKyAgICAgICAgcmV0dXJuIG1faGFzaCA9PSBvdGhlci5tX2hhc2gKKyAgICAgICAgICAg
ICYmIG1fZmxhZ3MgPT0gb3RoZXIubV9mbGFncwogICAgICAgICAgICAgJiYgbV9uYW1lID09IG90
aGVyLm1fbmFtZQotICAgICAgICAgICAgJiYgbV9zb3VyY2VTdHJpbmcgPT0gb3RoZXIubV9zb3Vy
Y2VTdHJpbmc7CisgICAgICAgICAgICAmJiBzdHJpbmcoKSA9PSBvdGhlci5zdHJpbmcoKTsKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgU3RyaW5nIG1fc291cmNlU3RyaW5nOworICAgIFNvdXJjZUNv
ZGUgbV9zb3VyY2VDb2RlOwogICAgIFN0cmluZyBtX25hbWU7CiAgICAgdW5zaWduZWQgbV9mbGFn
czsKKyAgICB1bnNpZ25lZCBtX2hhc2g7CiB9OwogCiBzdHJ1Y3QgU291cmNlQ29kZUtleUhhc2gg
ewo=
</data>
<flag name="review"
          id="209413"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>