<?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>31618</bug_id>
          
          <creation_ts>2009-11-18 00:57:46 -0800</creation_ts>
          <short_desc>&quot;using&quot; statement coding style guidelines need clarification</short_desc>
          <delta_ts>2009-12-01 21:51:28 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://lists.webkit.org/pipermail/webkit-dev/2009-November/010518.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>michelangelo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>164487</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-11-18 00:57:46 -0800</bug_when>
    <thetext>I recently learned from Darin Adler on the webkit-dev list that there are a few more &quot;unwritten rules&quot; regarding &quot;using&quot; statements in header files.  Namely--

(1) &quot;using namespace&quot; directives are unacceptable only if in the global scope (the guidelines say they are always unacceptable).
(2) The rules should probably apply not just to &quot;using namespace&quot; directives but also to &quot;using&quot; declarations.
(3) Statements of the form &quot;using WTF::...&quot; are exceptions.

Also, the coding style page does not validate.

A patch is forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164494</commentid>
    <comment_count>1</comment_count>
      <attachid>43413</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-11-18 01:25:25 -0800</bug_when>
    <thetext>Created attachment 43413
Proposed patch

(1) This patch corrects and clarifies the style guidelines re: &quot;using&quot; statements, per the report.

(2) It also clarifies a part of the web page about code cleanup:

http://webkit.org/projects/cleanup/index.html

The web site currently gives the impression that the WebKit project wants patches whose sole purpose is to clean up the code, but Alexey and Mark clarified otherwise--

https://bugs.webkit.org/show_bug.cgi?id=31526

(3) The style page now validates.

(4) The patch clarifies on the web site that JavaScriptGlue does not conform well to the guidelines (per Darin&apos;s e-mail on webkit-dev).

(I am still fuzzy on whether JSG does not conform because it is exempt from the guidelines -- so that it will never conform, or because less work has gone into it.  If the former, the site should probably state that somewhere so people don&apos;t invest unnecessary work in trying to clean it up.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164610</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-18 09:54:33 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; (I am still fuzzy on whether JSG does not conform because it is exempt from the
&gt; guidelines -- so that it will never conform, or because less work has gone into
&gt; it.  If the former, the site should probably state that somewhere so people
&gt; don&apos;t invest unnecessary work in trying to clean it up.)

JavaScriptGlue is a legacy component that should not receive any new development. It&apos;s needed for compatibility with some older Mac OS X software, but will eventually be retired.

Changes to it should be kept to a minimum. Style improvements would be counterproductive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164611</commentid>
    <comment_count>3</comment_count>
      <attachid>43413</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-18 09:57:30 -0800</bug_when>
    <thetext>Comment on attachment 43413
Proposed patch

&gt; +&lt;li&gt;It is acceptable, however, to use &quot;using&quot; declarations at the end of 
&gt; +header files to include into the global scope one or more names in 
&gt; +the WTF namespace.

I would specifically call this out as an exception to the rule just for the WTF sub-library.

&gt; +&lt;pre class=&quot;code&quot;&gt;
&gt; +// Vector.h
&gt; +
&gt; +namespace WTF {
&gt; +
&gt; +} // namespace WTF
&gt; +
&gt; +using namespace WTF;
&gt; +
&gt; +
&gt; +// Quantifier.h
&gt; +
&gt; +namespace JSC {
&gt; +
&gt; +} // namespace JSC
&gt; +
&gt; +using JSC::Quantifier;
&gt; +&lt;/pre&gt;

This repeats the Right example inside the Wrong!

&gt;  &lt;p&gt;In order for your patch to be landed, it&apos;s necessary that it comply to the &lt;a href=&quot;/coding/coding-style.html&quot;&gt;code style guidelines&lt;/a&gt;.
&gt; -There are some older parts of the codebase that do not always follow these guidelines. If you come across code like this,
&gt; +There are some older parts of the codebase that do not always follow 
&gt; +these guidelines. JavaScriptGlue is one example. If you come across code like this,
&gt;  it&apos;s generally best to clean it up to comply with the new guidelines.&lt;/p&gt;

I don&apos;t think this is good. JavaScriptGlue is different. It&apos;s end-of-lifed code, not just an older part of the codebase.

&gt;  &lt;dt&gt;Follow the Coding Style Guidelines&lt;/dt&gt;
&gt;  &lt;dd&gt;We welcome patches that clean up code to follow our coding style guidelines.
&gt; +However, cleanup should ordinarily take place only when you are already 
&gt; +touching a certain area of code.&lt;/dd&gt;

I know this is what we discussed, but I think it&apos;s confusing rule. Can we do better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164879</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-11-18 19:13:26 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; JavaScriptGlue is a legacy component that should not receive any new
&gt; development. It&apos;s needed for compatibility with some older Mac OS X software,
&gt; but will eventually be retired.
&gt; 
&gt; Changes to it should be kept to a minimum.

Thanks.  This is new information to me that I didn&apos;t pick up from reading the web site.  I think this is good information for someone new to the project that should appear on the web site somewhere.  Perhaps here--

http://trac.webkit.org/wiki/HighLevelOverview

Can you think of a better place?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164882</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-11-18 19:33:54 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 43413 [details])
&gt; &gt; +&lt;li&gt;It is acceptable, however, to use &quot;using&quot; declarations at the end of 
&gt; &gt; +header files to include into the global scope one or more names in 
&gt; &gt; +the WTF namespace.
&gt; 
&gt; I would specifically call this out as an exception to the rule just for the WTF
&gt; sub-library.

Sounds good.

&gt; This repeats the Right example inside the Wrong!

The Wrong is actually slightly different -- including not just one name in the WTF namespace but the entire WTF namespace (or is that okay?):

+&lt;h4 class=&quot;right&quot;&gt;Right:&lt;/h4&gt;
+
+} // namespace WTF
+
+using WTF::Vector;

+&lt;h4 class=&quot;wrong&quot;&gt;Wrong:&lt;/h4&gt;
+
+} // namespace WTF
+
+using namespace WTF;

&gt; &gt;  &lt;dt&gt;Follow the Coding Style Guidelines&lt;/dt&gt;
&gt; &gt;  &lt;dd&gt;We welcome patches that clean up code to follow our coding style guidelines.
&gt; &gt; +However, cleanup should ordinarily take place only when you are already 
&gt; &gt; +touching a certain area of code.&lt;/dd&gt;
&gt; 
&gt; I know this is what we discussed, but I think it&apos;s confusing rule. Can we do
&gt; better?

I guess I need your help here.  I wrote this partly to gain clarification: is it or is it not okay to submit patches that address only style?  The web site seems to say (even encourage) yes, but Alexey and Mark&apos;s response to my request above seems to say no.  I think it would be helpful for the site to be clearer on this point.

(Personally, I was only planning to do this in cases where things can be cleaned up with a script either globally or per-project, etc.  For example--

https://bugs.webkit.org/show_bug.cgi?id=31167

This seems more efficient than having everyone do a little bit at a time.  Also, in some cases it helps to have the style patches separated from the functional patches anyways.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165042</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-19 11:54:28 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Can you think of a better place?

No, but I&apos;m not really familiar with our documentation structure, believe it or not!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165048</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-19 12:00:50 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; The Wrong is actually slightly different -- including not just one name in the
&gt; WTF namespace but the entire WTF namespace (or is that okay?):
&gt; 
&gt; +&lt;h4 class=&quot;wrong&quot;&gt;Wrong:&lt;/h4&gt;
&gt; +
&gt; +} // namespace WTF
&gt; +
&gt; +using namespace WTF;

I think we need two different Wrong for the two different mistakes. Instead it looked like a since Wrong case that demonstrated two errors. A reader might miss one or the other other.

&gt; &gt; &gt;  &lt;dt&gt;Follow the Coding Style Guidelines&lt;/dt&gt;
&gt; &gt; &gt;  &lt;dd&gt;We welcome patches that clean up code to follow our coding style guidelines.
&gt; &gt; &gt; +However, cleanup should ordinarily take place only when you are already 
&gt; &gt; &gt; +touching a certain area of code.&lt;/dd&gt;
&gt; &gt; 
&gt; &gt; I know this is what we discussed, but I think it&apos;s confusing rule. Can we do
&gt; &gt; better?
&gt; 
&gt; I guess I need your help here.  I wrote this partly to gain clarification: is
&gt; it or is it not okay to submit patches that address only style?  The web site
&gt; seems to say (even encourage) yes, but Alexey and Mark&apos;s response to my request
&gt; above seems to say no.  I think it would be helpful for the site to be clearer
&gt; on this point.
&gt; 
&gt; (Personally, I was only planning to do this in cases where things can be
&gt; cleaned up with a script either globally or per-project, etc.  For example--
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=31167
&gt; 
&gt; This seems more efficient than having everyone do a little bit at a time. 
&gt; Also, in some cases it helps to have the style patches separated from the
&gt; functional patches anyways.)

Obviously, I can&apos;t make this decision on my own. Alexey and Mark are both influential, long-term contributors and have a lot to say on how the project is run. And so do I.

I thought of a few pros:

    1) Fixing formatting in earlier patches keeps formatting changes to a minimum in future patches that include substantive changes.

    2) It&apos;s good to have as much code as possible exemplify the style for new contributors.

    3) Good to eliminate distracting style differences while reading the code.

And cons:

    A) Changes en masse may make things worse and less readable without the people applying the changes noticing. Doing style changes in smaller pieces helps us notice cases where our style guidelines create poor results.

    B) Code style patches harm features like Subversion&apos;s &quot;annotate&quot;, giving the wrong information about who worked on code most recently.

    C) Applying code style from a document to the entire tree makes it easy for a small mistake in a document turn into a large problem in many source files.

    D) Encourages people to think of the guidelines as a mechanical thing for programs and scripts to deal with like the rules of a programming language rather than a shared set of rules made by people for the benefit of other people.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165176</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-11-19 19:15:32 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; I think we need two different Wrong for the two different mistakes.

Sounds good.

&gt; &gt; I guess I need your help here.  I wrote this partly to gain clarification: is
&gt; &gt; it or is it not okay to submit patches that address only style?
&gt; &gt; ...
&gt; Obviously, I can&apos;t make this decision on my own. Alexey and Mark are both
&gt; influential, long-term contributors and have a lot to say on how the project is
&gt; run. And so do I.
&gt; 
&gt; I thought of a few pros:
&gt; 
&gt; ...
&gt; 
&gt; And cons:
&gt; 
&gt; ...

This is an excellent list of pros and cons.  Given that there is no clear answer (and that I don&apos;t think it&apos;s worth the group&apos;s time to try to come up with one right now), I might just add a note warning the would-be contributor of style-only patches.

By the way, two more cons:

E) Lessens the incentive for people to become personally responsible for conformance to the guidelines.

F) Reduces the number of opportunities for people to become more familiar with the guidelines in a hands-on way.

Finally, providing a script that other people can use on a per-folder basis (for example) would mitigate cons A, B, and C.  This seems similar to the approach taken with the do-webcore-rename script in the WebKitTools/Scripts folder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165799</commentid>
    <comment_count>9</comment_count>
      <attachid>43694</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-11-22 23:12:41 -0800</bug_when>
    <thetext>Created attachment 43694
Revised patch

I have incorporated Darin&apos;s comments.

A couple remarks:

1) I&apos;m not sure if I interpreted the following suggestion correctly, after all:

&gt; I think we need two different Wrong for the two different mistakes. Instead it
&gt; looked like a since Wrong case that demonstrated two errors. A reader might
&gt; miss one or the other other.

I took this to mean to add a second &quot;Wrong&quot; header for the second mistake instead of having a single &quot;Wrong&quot; header for both mistakes.  I&apos;m not sure if this is what was intended, though, since the rest of the Style Guidelines page always uses a single &quot;Wrong&quot; header to illustrate mistakes -- even a group of them.

2) Regarding Darin&apos;s information that JavaScriptGlue is a legacy component, I added this information to the WebKit Wiki ( http://trac.webkit.org/wiki/HighLevelOverview ) instead of including it in this patch.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167874</commentid>
    <comment_count>10</comment_count>
      <attachid>43694</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-01 21:51:23 -0800</bug_when>
    <thetext>Comment on attachment 43694
Revised patch

Clearing flags on attachment: 43694

Committed r51587: &lt;http://trac.webkit.org/changeset/51587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167875</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-01 21:51:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43413</attachid>
            <date>2009-11-18 01:25:25 -0800</date>
            <delta_ts>2009-11-22 23:12:41 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4353</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFNpdGUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFNpdGUvQ2hh
bmdlTG9nCShyZXZpc2lvbiA1MTEwMikKKysrIFdlYktpdFNpdGUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMTEtMTggIENocmlzIEplcmRvbmVrICA8Y2hy
aXMuamVyZG9uZWtAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgU29tZSBjbGFyaWZpY2F0aW9ucyB0byB0aGUgd2ViIHNp
dGUtLQorICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMxNjE4CisKKyAgICAgICAgQWRkZWQgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiB0
byB0aGUgYXBwcm9wcmlhdGUgcGFnZXM6CisgICAgICAgIAorICAgICAgICAtIE1vcmUgY2xhcmlm
aWNhdGlvbnMgdG8gdGhlICJ1c2luZyIgc3RhdGVtZW50IHN0eWxlIGd1aWRlbGluZXMuCisgICAg
ICAgIC0gSmF2YVNjcmlwdEdsdWUgZG9lcyBub3QgZm9sbG93IHRoZSBjb2Rpbmcgc3R5bGUuCisg
ICAgICAgIC0gQ29kZSBjbGVhbnVwIG9yZGluYXJpbHkgZG9uZSB3aGVuIGFscmVhZHkgdG91Y2hp
bmcgY29kZS4KKyAgICAgICAgCisgICAgICAgIFRoZSBzdHlsZSBndWlkZWxpbmVzIHBhZ2UgYWxz
byBub3cgdmFsaWRhdGVzLgorICAgICAgICAKKyAgICAgICAgKiBjb2RpbmcvY29kaW5nLXN0eWxl
Lmh0bWw6CisgICAgICAgICogY29kaW5nL2NvbnRyaWJ1dGluZy5odG1sOgorICAgICAgICAqIHBy
b2plY3RzL2NsZWFudXAvaW5kZXguaHRtbDoKKwogMjAwOS0xMS0xNiAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KSW5k
ZXg6IFdlYktpdFNpdGUvY29kaW5nL2NvZGluZy1zdHlsZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFNpdGUvY29kaW5nL2NvZGluZy1zdHlsZS5odG1sCShyZXZpc2lvbiA1MTEwMikKKysrIFdl
YktpdFNpdGUvY29kaW5nL2NvZGluZy1zdHlsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDgg
KzEsNyBAQAogPD9waHAgCiAgICAgJHRpdGxlPSJXZWJLaXQgQ29kaW5nIFN0eWxlIEd1aWRlbGlu
ZXMiOwotICAgIGluY2x1ZGUoIi4uL2hlYWRlci5pbmMiKTsgCi0/PgotCisgICAgCisgICAgJGV4
dHJhX2hlYWRfY29udGVudCA9IDw8PEVORAogPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KIHByZSAu
Y29kZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOwpAQCAtMTgsNiArMTcsMTEgQEAg
cHJlIC5jb2RlIHsKIDwvc3R5bGU+CiAKIAorRU5EOworCisgICAgaW5jbHVkZSgiLi4vaGVhZGVy
LmluYyIpOyAKKz8+CisKIDxoMj5XZWJLaXQgQ29kaW5nIFN0eWxlIEd1aWRlbGluZXM8L2gyPgog
PGgzPkluZGVudGF0aW9uPC9oMz4KIApAQCAtNzAxLDExICs3MDUsNjYgQEAgRG9uJ3QgYm90aGVy
IHRvIG9yZ2FuaXplIHRoZW0gaW4gYSBsb2dpYwogPC9wcmU+CiA8L29sPgogCi08aDM+InVzaW5n
IG5hbWVzcGFjZSIgU3RhdGVtZW50czwvaDM+Cis8aDM+InVzaW5nIiBTdGF0ZW1lbnRzPC9oMz4K
IAogPG9sPgogCi08bGk+RG8gbm90IHVzZSAidXNpbmcgbmFtZXNwYWNlIiBzdGF0ZW1lbnRzIGlu
IGhlYWRlciBmaWxlcy4KKzxsaT5JbiBoZWFkZXIgZmlsZXMsIGRvIG5vdCB1c2UgInVzaW5nIiBz
dGF0ZW1lbnRzIGluIHRoZSBnbG9iYWwgc2NvcGUuCisKKzxoNCBjbGFzcz0icmlnaHQiPlJpZ2h0
OjwvaDQ+Cis8cHJlIGNsYXNzPSJjb2RlIj4KKy8vIFZlY3Rvci5oCisKK2NsYXNzIFZlY3RvckJ1
ZmZlciB7CisgICAgdXNpbmcgc3RkOjptaW47CisgICAgLi4uCit9OworPC9wcmU+Cis8aDQgY2xh
c3M9Indyb25nIj5Xcm9uZzo8L2g0PgorPHByZSBjbGFzcz0iY29kZSI+CisvLyBWZWN0b3IuaAor
Cit1c2luZyBzdGQ6Om1pbjsKKyAgICAKK2NsYXNzIFZlY3RvckJ1ZmZlciB7CisgICAgLi4uCit9
OworPC9wcmU+Cis8L2xpPgorCis8bGk+SXQgaXMgYWNjZXB0YWJsZSwgaG93ZXZlciwgdG8gdXNl
ICJ1c2luZyIgZGVjbGFyYXRpb25zIGF0IHRoZSBlbmQgb2YgCitoZWFkZXIgZmlsZXMgdG8gaW5j
bHVkZSBpbnRvIHRoZSBnbG9iYWwgc2NvcGUgb25lIG9yIG1vcmUgbmFtZXMgaW4gCit0aGUgV1RG
IG5hbWVzcGFjZS4KKworPGg0IGNsYXNzPSJyaWdodCI+UmlnaHQ6PC9oND4KKzxwcmUgY2xhc3M9
ImNvZGUiPgorLy8gVmVjdG9yLmgKKworbmFtZXNwYWNlIFdURiB7CisKK30gLy8gbmFtZXNwYWNl
IFdURgorCit1c2luZyBXVEY6OlZlY3RvcjsKKzwvcHJlPgorPGg0IGNsYXNzPSJ3cm9uZyI+V3Jv
bmc6PC9oND4KKzxwcmUgY2xhc3M9ImNvZGUiPgorLy8gVmVjdG9yLmgKKworbmFtZXNwYWNlIFdU
RiB7CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBuYW1lc3BhY2UgV1RGOworCisKKy8v
IFF1YW50aWZpZXIuaAorCituYW1lc3BhY2UgSlNDIHsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisK
K3VzaW5nIEpTQzo6UXVhbnRpZmllcjsKKzwvcHJlPgogPC9saT4KIAogPGxpPkFueSAidXNpbmcg
bmFtZXNwYWNlIiBzdGF0ZW1lbnRzIGZvciBhIG5lc3RlZCBuYW1lc3BhY2Ugd2hvc2UgcGFyZW50
IG5hbWVzcGFjZSAKSW5kZXg6IFdlYktpdFNpdGUvY29kaW5nL2NvbnRyaWJ1dGluZy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFNpdGUvY29kaW5nL2NvbnRyaWJ1dGluZy5odG1sCShyZXZpc2lv
biA1MTEwMikKKysrIFdlYktpdFNpdGUvY29kaW5nL2NvbnRyaWJ1dGluZy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0yMSw3ICsyMSw4IEBAIE9uY2UgeW91IGhhdmUgdGhlIGNvZGUgPGEgaHJlZj0i
L2J1aWxkaW4KIAogPGgzPkNvZGUgU3R5bGUgR3VpZGVsaW5lczwvaDM+CiA8cD5JbiBvcmRlciBm
b3IgeW91ciBwYXRjaCB0byBiZSBsYW5kZWQsIGl0J3MgbmVjZXNzYXJ5IHRoYXQgaXQgY29tcGx5
IHRvIHRoZSA8YSBocmVmPSIvY29kaW5nL2NvZGluZy1zdHlsZS5odG1sIj5jb2RlIHN0eWxlIGd1
aWRlbGluZXM8L2E+LgotVGhlcmUgYXJlIHNvbWUgb2xkZXIgcGFydHMgb2YgdGhlIGNvZGViYXNl
IHRoYXQgZG8gbm90IGFsd2F5cyBmb2xsb3cgdGhlc2UgZ3VpZGVsaW5lcy4gSWYgeW91IGNvbWUg
YWNyb3NzIGNvZGUgbGlrZSB0aGlzLAorVGhlcmUgYXJlIHNvbWUgb2xkZXIgcGFydHMgb2YgdGhl
IGNvZGViYXNlIHRoYXQgZG8gbm90IGFsd2F5cyBmb2xsb3cgCit0aGVzZSBndWlkZWxpbmVzLiBK
YXZhU2NyaXB0R2x1ZSBpcyBvbmUgZXhhbXBsZS4gSWYgeW91IGNvbWUgYWNyb3NzIGNvZGUgbGlr
ZSB0aGlzLAogaXQncyBnZW5lcmFsbHkgYmVzdCB0byBjbGVhbiBpdCB1cCB0byBjb21wbHkgd2l0
aCB0aGUgbmV3IGd1aWRlbGluZXMuPC9wPgogCiA8aDM+UmVncmVzc2lvbiB0ZXN0czwvaDM+Cklu
ZGV4OiBXZWJLaXRTaXRlL3Byb2plY3RzL2NsZWFudXAvaW5kZXguaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRTaXRlL3Byb2plY3RzL2NsZWFudXAvaW5kZXguaHRtbAkocmV2aXNpb24gNTExMDIp
CisrKyBXZWJLaXRTaXRlL3Byb2plY3RzL2NsZWFudXAvaW5kZXguaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTYsNiArMTYsOCBAQCBmcmFtZXdvcmsgdG8gYmV0dGVyIHJlZmFjdG9yIGNvZGUgb3Ig
dG8gCiA8ZGw+CiA8ZHQ+Rm9sbG93IHRoZSBDb2RpbmcgU3R5bGUgR3VpZGVsaW5lczwvZHQ+CiA8
ZGQ+V2Ugd2VsY29tZSBwYXRjaGVzIHRoYXQgY2xlYW4gdXAgY29kZSB0byBmb2xsb3cgb3VyIGNv
ZGluZyBzdHlsZSBndWlkZWxpbmVzLgorSG93ZXZlciwgY2xlYW51cCBzaG91bGQgb3JkaW5hcmls
eSB0YWtlIHBsYWNlIG9ubHkgd2hlbiB5b3UgYXJlIGFscmVhZHkgCit0b3VjaGluZyBhIGNlcnRh
aW4gYXJlYSBvZiBjb2RlLjwvZGQ+CiAKIDxkdD5FbGltaW5hdGUgUmVkdW5kYW50IENvZGUgaW4g
V2ViS2l0IGFuZCBXZWJDb3JlPC9kdD4KIDxkZD5Ob3cgdGhhdCBXZWJLaXQgYW5kIFdlYkNvcmUg
YXJlIGJvdGggb3BlbiBzb3VyY2UsIHRoZXJlIGlzIGxlc3Mgb2YgYSBuZWVkIGZvciBhbiBhcnRp
ZmljaWFsIGJhcnJpZXIgYmV0d2VlbiB0aGUgdHdvIGZyYW1ld29ya3MuICBNdWNoIG9mIHRoZSBP
YmplY3RpdmUtQyBjb2RlIHRoYXQK
</data>
<flag name="review"
          id="25117"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43694</attachid>
            <date>2009-11-22 23:12:41 -0800</date>
            <delta_ts>2009-12-01 21:51:23 -0800</delta_ts>
            <desc>Revised patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5041</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFNpdGUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFNpdGUvQ2hh
bmdlTG9nCShyZXZpc2lvbiA1MTMwMykKKysrIFdlYktpdFNpdGUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDktMTEtMjIgIENocmlzIEplcmRvbmVrICA8Y2hy
aXMuamVyZG9uZWtAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIGNsYXJpZmljYXRpb25zIHRvIHRoZSB3ZWIgc2l0ZSByZWdh
cmRpbmcgY29kaW5nIHN0eWxlIGFuZAorICAgICAgICBjb2RlIGNsZWFudXAtLQorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTYxOAorCisgICAgICAg
IENoYW5nZXMgaW5jbHVkZSB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIC0gRXhwYW5kZWQgdGhl
IHN0eWxlIGd1aWRlbGluZXMgcmVnYXJkaW5nICJ1c2luZyIgc3RhdGVtZW50cy4KKyAgICAgICAg
LSBNYWRlIHRoZSBzdHlsZSBndWlkZWxpbmVzIHBhZ2UgdmFsaWRhdGUgYXMgSFRNTC4KKyAgICAg
ICAgLSBBZGRlZCB0aGF0IGxlZ2FjeSBXZWJLaXQgY29tcG9uZW50cyBzaG91bGQgbm90IGJlIGNs
ZWFuZWQgdXAuCisgICAgICAgIC0gQWRkZWQgdGhhdCBpdCBpcyBtb3JlIGFjY2VwdGFibGUgdG8g
dXBkYXRlIHN0eWxlIHdoZW4gYWxyZWFkeQorICAgICAgICAgIHRvdWNoaW5nIGNvZGUuCisKKyAg
ICAgICAgKiBjb2RpbmcvY29kaW5nLXN0eWxlLmh0bWw6CisgICAgICAgICogY29kaW5nL2NvbnRy
aWJ1dGluZy5odG1sOgorICAgICAgICAqIHByb2plY3RzL2NsZWFudXAvaW5kZXguaHRtbDoKKwog
MjAwOS0xMS0xOCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4OiBXZWJLaXRTaXRlL3Byb2plY3RzL2NsZWFudXAv
aW5kZXguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRTaXRlL3Byb2plY3RzL2NsZWFudXAvaW5k
ZXguaHRtbAkocmV2aXNpb24gNTEzMDMpCisrKyBXZWJLaXRTaXRlL3Byb2plY3RzL2NsZWFudXAv
aW5kZXguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTYsNiArMTYsMTEgQEAKIDxkbD4KIDxkdD5G
b2xsb3cgdGhlIENvZGluZyBTdHlsZSBHdWlkZWxpbmVzPC9kdD4KIDxkZD5XZSB3ZWxjb21lIHBh
dGNoZXMgdGhhdCBjbGVhbiB1cCBjb2RlIHRvIGZvbGxvdyBvdXIgY29kaW5nIHN0eWxlIGd1aWRl
bGluZXMuCitXZSBlc3BlY2lhbGx5IGVuY291cmFnZSBjb250cmlidXRvcnMgdG8gY2xlYW4gdXAg
Y29kZSB0aGF0IHRoZXkgYXJlIGFscmVhZHkKK3dvcmtpbmcgb24uIEl0IGlzIGxlc3MgY29tbW9u
IGZvciBjb250cmlidXRvcnMgdG8gdXBkYXRlIHN0eWxlIHdpdGhvdXQKK21ha2luZyBzdWJzdGFu
dGl2ZSBjaGFuZ2VzLiBJZiB5b3Ugd291bGQgbGlrZSB0byBjbGVhbiB1cCBjb2RlIHdpdGhvdXQK
K21ha2luZyBzdWJzdGFudGl2ZSBjaGFuZ2VzLCB5b3UgYXJlIGFkdmlzZWQgdG8gY2hlY2sgd2l0
aCBwcm9qZWN0IG1lbWJlcnMKK2ZpcnN0LjwvZGQ+CiAKIDxkdD5FbGltaW5hdGUgUmVkdW5kYW50
IENvZGUgaW4gV2ViS2l0IGFuZCBXZWJDb3JlPC9kdD4KIDxkZD5Ob3cgdGhhdCBXZWJLaXQgYW5k
IFdlYkNvcmUgYXJlIGJvdGggb3BlbiBzb3VyY2UsIHRoZXJlIGlzIGxlc3Mgb2YgYSBuZWVkIGZv
ciBhbiBhcnRpZmljaWFsIGJhcnJpZXIgYmV0d2VlbiB0aGUgdHdvIGZyYW1ld29ya3MuICBNdWNo
IG9mIHRoZSBPYmplY3RpdmUtQyBjb2RlIHRoYXQKSW5kZXg6IFdlYktpdFNpdGUvY29kaW5nL2Nv
ZGluZy1zdHlsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFNpdGUvY29kaW5nL2NvZGluZy1z
dHlsZS5odG1sCShyZXZpc2lvbiA1MTMwMykKKysrIFdlYktpdFNpdGUvY29kaW5nL2NvZGluZy1z
dHlsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNyBAQAogPD9waHAgCiAgICAgJHRp
dGxlPSJXZWJLaXQgQ29kaW5nIFN0eWxlIEd1aWRlbGluZXMiOwotICAgIGluY2x1ZGUoIi4uL2hl
YWRlci5pbmMiKTsgCi0/PgotCisgICAgCisgICAgJGV4dHJhX2hlYWRfY29udGVudCA9IDw8PEVO
RAogPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KIHByZSAuY29kZSB7CiAgICBiYWNrZ3JvdW5kLWNv
bG9yOiAjRjJGMkYyOwpAQCAtMTgsNiArMTcsMTEgQEAKIDwvc3R5bGU+CiAKIAorRU5EOworCisg
ICAgaW5jbHVkZSgiLi4vaGVhZGVyLmluYyIpOyAKKz8+CisKIDxoMj5XZWJLaXQgQ29kaW5nIFN0
eWxlIEd1aWRlbGluZXM8L2gyPgogPGgzPkluZGVudGF0aW9uPC9oMz4KIApAQCAtNzAxLDEzICs3
MDUsNzggQEAKIDwvcHJlPgogPC9vbD4KIAotPGgzPiJ1c2luZyBuYW1lc3BhY2UiIFN0YXRlbWVu
dHM8L2gzPgorPGgzPiJ1c2luZyIgU3RhdGVtZW50czwvaDM+CiAKIDxvbD4KIAotPGxpPkRvIG5v
dCB1c2UgInVzaW5nIG5hbWVzcGFjZSIgc3RhdGVtZW50cyBpbiBoZWFkZXIgZmlsZXMuCis8bGk+
SW4gaGVhZGVyIGZpbGVzLCBkbyBub3QgdXNlICJ1c2luZyIgc3RhdGVtZW50cyBpbiBnbG9iYWwg
b3IgCisibmFtZXNwYWNlIiBzY29wZS4KKworPGg0IGNsYXNzPSJyaWdodCI+UmlnaHQ6PC9oND4K
KzxwcmUgY2xhc3M9ImNvZGUiPgorLy8gd3RmL1ZlY3Rvci5oCisKK25hbWVzcGFjZSBXVEYgewor
CitjbGFzcyBWZWN0b3JCdWZmZXIgeworICAgIHVzaW5nIHN0ZDo6bWluOworICAgIC4uLgorfTsK
KworfSAvLyBuYW1lc3BhY2UgV1RGCis8L3ByZT4KKzxoNCBjbGFzcz0id3JvbmciPldyb25nOjwv
aDQ+Cis8cHJlIGNsYXNzPSJjb2RlIj4KKy8vIHd0Zi9WZWN0b3IuaAorCituYW1lc3BhY2UgV1RG
IHsKKwordXNpbmcgc3RkOjptaW47CisgICAgCitjbGFzcyBWZWN0b3JCdWZmZXIgeworICAgIC4u
LgorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCis8L3ByZT4KIDwvbGk+CiAKKzxsaT5JdCBpcyBh
Y2NlcHRhYmxlLCBob3dldmVyLCB0byB1c2UgInVzaW5nIiBkZWNsYXJhdGlvbnMgYXQgdGhlIGVu
ZCBvZiAKK2hlYWRlciBmaWxlcyBpbiB0aGUgV1RGIHN1Yi1saWJhcnkgdG8gaW5jbHVkZSBvbmUg
b3IgbW9yZSBuYW1lcyBpbiAKK3RoZSBXVEYgbmFtZXNwYWNlIGludG8gdGhlIGdsb2JhbCBzY29w
ZS4KKworPGg0IGNsYXNzPSJyaWdodCI+UmlnaHQ6PC9oND4KKzxwcmUgY2xhc3M9ImNvZGUiPgor
Ly8gd3RmL1ZlY3Rvci5oCisKK25hbWVzcGFjZSBXVEYgeworCit9IC8vIG5hbWVzcGFjZSBXVEYK
KwordXNpbmcgV1RGOjpWZWN0b3I7Cis8L3ByZT4KKzxoNCBjbGFzcz0id3JvbmciPldyb25nOjwv
aDQ+Cis8cHJlIGNsYXNzPSJjb2RlIj4KKy8vIHd0Zi9WZWN0b3IuaAorCituYW1lc3BhY2UgV1RG
IHsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIG5hbWVzcGFjZSBXVEY7Cis8L3ByZT4K
KzxoNCBjbGFzcz0id3JvbmciPldyb25nOjwvaDQ+Cis8cHJlIGNsYXNzPSJjb2RlIj4KKy8vIHJ1
bnRpbWUvVVN0cmluZy5oCisKK25hbWVzcGFjZSBXVEYgeworCit9IC8vIG5hbWVzcGFjZSBXVEYK
KwordXNpbmcgV1RGOjpQbGFjZW1lbnROZXdBZG9wdDsKKzwvcHJlPgorPC9saT4KKwogPGxpPkFu
eSAidXNpbmcgbmFtZXNwYWNlIiBzdGF0ZW1lbnRzIGZvciBhIG5lc3RlZCBuYW1lc3BhY2Ugd2hv
c2UgcGFyZW50IG5hbWVzcGFjZSAKIGlzIGFsc28gZGVmaW5lZCBpbiBhIGZpbGUgbXVzdCBiZSBk
ZWNsYXJlZCB3aXRoaW4gdGhhdCBuYW1lc3BhY2UgZGVmaW5pdGlvbi4KIApJbmRleDogV2ViS2l0
U2l0ZS9jb2RpbmcvY29udHJpYnV0aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0U2l0ZS9j
b2RpbmcvY29udHJpYnV0aW5nLmh0bWwJKHJldmlzaW9uIDUxMzAzKQorKysgV2ViS2l0U2l0ZS9j
b2RpbmcvY29udHJpYnV0aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIwLDkgKzIwLDExIEBA
CiAKIAogPGgzPkNvZGUgU3R5bGUgR3VpZGVsaW5lczwvaDM+Ci08cD5JbiBvcmRlciBmb3IgeW91
ciBwYXRjaCB0byBiZSBsYW5kZWQsIGl0J3MgbmVjZXNzYXJ5IHRoYXQgaXQgY29tcGx5IHRvIHRo
ZSA8YSBocmVmPSIvY29kaW5nL2NvZGluZy1zdHlsZS5odG1sIj5jb2RlIHN0eWxlIGd1aWRlbGlu
ZXM8L2E+LgotVGhlcmUgYXJlIHNvbWUgb2xkZXIgcGFydHMgb2YgdGhlIGNvZGViYXNlIHRoYXQg
ZG8gbm90IGFsd2F5cyBmb2xsb3cgdGhlc2UgZ3VpZGVsaW5lcy4gSWYgeW91IGNvbWUgYWNyb3Nz
IGNvZGUgbGlrZSB0aGlzLAotaXQncyBnZW5lcmFsbHkgYmVzdCB0byBjbGVhbiBpdCB1cCB0byBj
b21wbHkgd2l0aCB0aGUgbmV3IGd1aWRlbGluZXMuPC9wPgorPHA+UGF0Y2hlcyBtdXN0IGNvbXBs
eSB3aXRoIHRoZSA8YSBocmVmPSIvY29kaW5nL2NvZGluZy1zdHlsZS5odG1sIj5jb2RlIHN0eWxl
IGd1aWRlbGluZXM8L2E+LgorU29tZSBvbGRlciBwYXJ0cyBvZiB0aGUgY29kZWJhc2UgZG8gbm90
IGZvbGxvdyB0aGVzZSBndWlkZWxpbmVzLgorSWYgeW91IGFyZSBtb2RpZnlpbmcgc3VjaCBjb2Rl
LCBpdCBpcyBnZW5lcmFsbHkgYmVzdCB0byBjbGVhbiBpdCB1cAordG8gY29tcGx5IHdpdGggdGhl
IGN1cnJlbnQgZ3VpZGVsaW5lcy4gQW4gZXhjZXB0aW9uIGlzIGxlZ2FjeSBjb21wb25lbnRzLAor
d2hpY2ggc2hvdWxkIG5vdCBiZSBjbGVhbmVkIHVwLjwvcD4KIAogPGgzPlJlZ3Jlc3Npb24gdGVz
dHM8L2gzPgogPHA+T25jZSB5b3UgaGF2ZSBtYWRlIHlvdXIgY2hhbmdlcywgeW91IG5lZWQgdG8g
cnVuIHRoZSByZWdyZXNzaW9uIHRlc3RzLCB3aGljaCBpcyBkb25lIHZpYSB0aGUgPHR0PnJ1bi13
ZWJraXQtdGVzdHM8L3R0PiBzY3JpcHQuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>