<?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>96749</bug_id>
          
          <creation_ts>2012-09-14 03:45:40 -0700</creation_ts>
          <short_desc>WTFString::show doesn&apos;t dump non-ASCII characters in a readable manner</short_desc>
          <delta_ts>2012-09-18 10:57:14 -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>Web Template Framework</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>96873</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Glenn Adams">glenn</reporter>
          <assigned_to name="Glenn Adams">glenn</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>darin</cc>
    
    <cc>seikwon.kim</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>720538</commentid>
    <comment_count>0</comment_count>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-14 03:45:40 -0700</bug_when>
    <thetext>To repeat: in debugger, invoke WTFString::show on a String that contains a non-ASCII character.  That non-ASCII character is dumped as &apos;?&apos; which isn&apos;t useful for debugging. It should dump a reasonable ASCII representation instead, e.g., using the \uXXXX syntax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720541</commentid>
    <comment_count>1</comment_count>
      <attachid>164093</attachid>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-14 03:53:35 -0700</bug_when>
    <thetext>Created attachment 164093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720594</commentid>
    <comment_count>2</comment_count>
      <attachid>164093</attachid>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-14 04:54:20 -0700</bug_when>
    <thetext>Comment on attachment 164093
Patch

suggest benjaminp review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720900</commentid>
    <comment_count>3</comment_count>
      <attachid>164093</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-14 10:19:24 -0700</bug_when>
    <thetext>Comment on attachment 164093
Patch

We have existing functionality for escaping strings in WebCore/platform/text/TextCodec.h and in window.escape function implementation. I suggest either reusing existing code, or at least keeping implementations close together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721047</commentid>
    <comment_count>4</comment_count>
      <attachid>164093</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-14 12:48:33 -0700</bug_when>
    <thetext>Comment on attachment 164093
Patch

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

&gt; Source/WTF/wtf/text/WTFString.cpp:1141
&gt; -    buffer.resize(length + 1);
&gt; -    for (unsigned i = 0; i &lt; length; ++i) {
&gt; +    unsigned bufferNeeds = 1;
&gt; +    for (unsigned i = 0; i &lt; length; i++) {
&gt;          UChar ch = characters[i];
&gt; -        buffer[i] = ch &amp;&amp; (ch &lt; 0x20 || ch &gt; 0x7f) ? &apos;?&apos; : ch;
&gt; +        bufferNeeds += !ch || ch &lt; 0x20 || ch &gt; 0x7f ? 6 : 1;
&gt; +    }
&gt; +
&gt; +    buffer.resize(bufferNeeds);
&gt; +    unsigned bufferUsed = 0;

The name bufferNeeds is not good enough, it poorly maps to the purpose of the variable.

This is debug code, it should be simple to read. Drop the first loop, use Vector::append() instead of handling the size manually. 

Why would you change ++i to i++?

&gt; Source/WTF/wtf/text/WTFString.cpp:1143
&gt; +        UChar ch = characters[i];

I would drop impl-&gt;characters() before and use (*impl)[i] here.

&gt; Source/WTF/wtf/text/WTFString.cpp:1144
&gt; +        if (!ch || ch &lt; 0x20 || ch &gt; 0x7f) {

We have isASCII() for that.

&gt; Source/WTF/wtf/text/WTFString.cpp:1150
&gt; +            for (unsigned k = 0; k &lt; 4; k++, ch &lt;&lt;= 4) {
&gt; +                static const char hexDigits[] = &quot;0123456789ABCDEF&quot;;
&gt; +                buffer[bufferUsed++] = hexDigits[(ch &gt;&gt; 12) &amp; 0xF];
&gt; +            }

We have functions for that in HexNumbers.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721282</commentid>
    <comment_count>5</comment_count>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-14 17:49:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 164093 [details])
&gt; We have existing functionality for escaping strings in WebCore/platform/text/TextCodec.h and in window.escape function implementation. I suggest either reusing existing code, or at least keeping implementations close together.

understood, but perhaps WTF should not be dependent on WebCore? yes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721290</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-14 18:05:50 -0700</bug_when>
    <thetext>&gt; &gt; We have existing functionality for escaping strings in WebCore/platform/text/TextCodec.h and in window.escape function implementation. I suggest either reusing existing code, or at least keeping implementations close together.
&gt; 
&gt; understood, but perhaps WTF should not be dependent on WebCore? yes?

That is not what Alexey suggested :)

WTF should not depend on WebCore, but it is common for features to move from JavaScriptCore and WebCore to WTF.
In this case, I am not entirely convinced it is necessary, but I haven&apos;t looked at TextCodec to see what can be done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721325</commentid>
    <comment_count>7</comment_count>
      <attachid>164263</attachid>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-14 19:18:01 -0700</bug_when>
    <thetext>Created attachment 164263
address comments in comment #4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721328</commentid>
    <comment_count>8</comment_count>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-14 19:21:50 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; &gt; We have existing functionality for escaping strings in WebCore/platform/text/TextCodec.h and in window.escape function implementation. I suggest either reusing existing code, or at least keeping implementations close together.
&gt; &gt; 
&gt; &gt; understood, but perhaps WTF should not be dependent on WebCore? yes?
&gt; 
&gt; That is not what Alexey suggested :)
&gt; 
&gt; WTF should not depend on WebCore, but it is common for features to move from JavaScriptCore and WebCore to WTF.
&gt; In this case, I am not entirely convinced it is necessary, but I haven&apos;t looked at TextCodec to see what can be done.

in this present case, my goal is simply to have WTFString::show do something more sensible with !isASCIIPrintable UChars; might I suggest another BZ be filed if there is a desire to do more (such as move other related WebCore functions into WTFString et al.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721367</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-14 21:05:20 -0700</bug_when>
    <thetext>&gt; in this present case, my goal is simply to have WTFString::show do something more sensible with !isASCIIPrintable UChars; might I suggest another BZ be filed if there is a desire to do more (such as move other related WebCore functions into WTFString et al.)

WebKit has a shared responsibility codebase. As such, if there is a better patch to be done, it should be done.
Letting someone else clean after you is not a great option...

I&apos;ll have a look at the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721368</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-14 21:06:38 -0700</bug_when>
    <thetext>&gt; In this case, I am not entirely convinced it is necessary, but I haven&apos;t looked at TextCodec to see what can be done.

Ditto. Having code like this in three places surely feels wrong though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721370</commentid>
    <comment_count>11</comment_count>
      <attachid>164263</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-14 21:11:47 -0700</bug_when>
    <thetext>Comment on attachment 164263
address comments in comment #4

Looks good.

I don&apos;t think there is enough advantages to share the code with TextCodec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721372</commentid>
    <comment_count>12</comment_count>
      <attachid>164263</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 21:38:53 -0700</bug_when>
    <thetext>Comment on attachment 164263
address comments in comment #4

Clearing flags on attachment: 164263

Committed r128682: &lt;http://trac.webkit.org/changeset/128682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721373</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 21:38:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721387</commentid>
    <comment_count>14</comment_count>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-14 23:31:50 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; in this present case, my goal is simply to have WTFString::show do something more sensible with !isASCIIPrintable UChars; might I suggest another BZ be filed if there is a desire to do more (such as move other related WebCore functions into WTFString et al.)
&gt; 
&gt; WebKit has a shared responsibility codebase. As such, if there is a better patch to be done, it should be done.
&gt; Letting someone else clean after you is not a great option...
&gt; 
&gt; I&apos;ll have a look at the patch.

Understood. I&apos;d be happy to work on &quot;a better patch&quot; or an additional patch if you or Alexey believe it is worth pursuing, in which case please give me a few hints of what you would like to see done.

I agree one shouldn&apos;t leave around detritus to be cleaned up, and hope I&apos;m not doing that here.

Thanks for landing this one!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721391</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-09-15 00:01:30 -0700</bug_when>
    <thetext>This broke all of the Mac release builds, so I rolled it out in r128684.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721392</commentid>
    <comment_count>16</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-09-15 00:02:21 -0700</bug_when>
    <thetext>Example build log file is at &lt;http://build.webkit.org/builders/Apple%20Lion%20Release%20%28Build%29/builds/3900/steps/compile-webkit/logs/stdio&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721395</commentid>
    <comment_count>17</comment_count>
      <attachid>164277</attachid>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-15 00:33:32 -0700</bug_when>
    <thetext>Created attachment 164277
fix release build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721400</commentid>
    <comment_count>18</comment_count>
      <attachid>164277</attachid>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-15 01:08:58 -0700</bug_when>
    <thetext>Comment on attachment 164277
fix release build

mea culpa; looks like HexNumber.h can&apos;t be included without a template expansion that references hexDigitsForMode(); this patch update fixes the Mac builds problem by conditionalizing the inclusion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721403</commentid>
    <comment_count>19</comment_count>
      <attachid>164277</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-15 01:22:06 -0700</bug_when>
    <thetext>Comment on attachment 164277
fix release build

I would prefer HexNumber.h modified so that does not happen again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721608</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-09-16 08:30:30 -0700</bug_when>
    <thetext>It’s not so great to dump in an ambiguous format. Probably need to change &quot;\&quot; into &quot;\\&quot; if we’re also going to use &quot;\&quot; as a metacharacter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721677</commentid>
    <comment_count>21</comment_count>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-16 21:18:21 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; It’s not so great to dump in an ambiguous format. Probably need to change &quot;\&quot; into &quot;\\&quot; if we’re also going to use &quot;\&quot; as a metacharacter.

Good point (even though this is primarily intended for human reading, where it is unlikely to be mistaken). I&apos;ll make this fix and r? after someone lands the depends-on patch at [1].

[1] https://bugs.webkit.org/attachment.cgi?id=164304&amp;action=review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722533</commentid>
    <comment_count>22</comment_count>
      <attachid>164502</attachid>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-17 23:59:26 -0700</bug_when>
    <thetext>Created attachment 164502
address comment #20</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722601</commentid>
    <comment_count>23</comment_count>
      <attachid>164502</attachid>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-09-18 01:58:56 -0700</bug_when>
    <thetext>Comment on attachment 164502
address comment #20

all comments addressed, please review and land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722903</commentid>
    <comment_count>24</comment_count>
      <attachid>164502</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 10:57:10 -0700</bug_when>
    <thetext>Comment on attachment 164502
address comment #20

Clearing flags on attachment: 164502

Committed r128908: &lt;http://trac.webkit.org/changeset/128908&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722904</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 10:57:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164093</attachid>
            <date>2012-09-14 03:53:35 -0700</date>
            <delta_ts>2012-09-14 19:17:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96749-20120914185306.patch</filename>
            <type>text/plain</type>
            <size>2230</size>
            <attacher name="Glenn Adams">glenn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhiODcyOTVmODFkYTRlMmJjNWQ0MWVm
ZjRhYTg3NjM5ZTM3ZDRkOTUuLjA3ODhhMDdlZWVmNGMxYmUxYTNjZTNkM2NjZWFhZDMzNGU5Y2Y2
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDktMTQgIEdsZW5uIEFkYW1zICA8Z2xlbm5A
c2t5bmF2LmNvbT4KKworICAgICAgICBXVEZTdHJpbmc6OnNob3cgZG9lc24ndCBkdW1wIG5vbi1B
U0NJSSBjaGFyYWN0ZXJzIGluIGEgcmVhZGFibGUgbWFubmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njc0OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIER1bXAgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4g
YSB1c2VmdWwgZm9ybSBmb3IgZGVidWdnaW5nLgorCisgICAgICAgICogd3RmL3RleHQvV1RGU3Ry
aW5nLmNwcDoKKyAgICAgICAgKGFzY2lpRGVidWcpOgorICAgICAgICBEdW1wIG5vbi1BU0NJSSBj
aGFyYWN0ZXJzIChpLmUuLCBVVEYtMTYgY29kZSBlbGVtZW50cykgYXMgd2VsbCBhcyBub24tcHJp
bnRhYmxlIEFTQ0lJIGNoYXJhY3RlcnMKKyAgICAgICAgdXNpbmcgXHVYWFhYIGZvcm1hdC4KKwog
MjAxMi0wOS0xMyAgS2V2aW4gRnVuayAgPGtldmluLmZ1bmtAa2RhYi5jb20+CiAKICAgICAgICAg
TWFrZSBjb21waWxlIHdpdGggYm90aCBPUyhXSU5DRSkgYW5kIFBMQVRGT1JNKFFUKSBzdXBwb3J0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKaW5kZXggNmYxNGJjZjU2NGEyMGZkZDAyOGU1ZmYw
YmZkMWYyYzE5YzI4NzgxNS4uZWQ3MjdlODg4Yjk0ZmZjZTg4ODgyMWU5NDg3Yjk4N2M1NmFjNzc0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcApAQCAtMTEzMSwxMiArMTEzMSwyNyBAQCBW
ZWN0b3I8Y2hhcj4gYXNjaWlEZWJ1ZyhTdHJpbmdJbXBsKiBpbXBsKQogICAgIHVuc2lnbmVkIGxl
bmd0aCA9IGltcGwtPmxlbmd0aCgpOwogICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gaW1w
bC0+Y2hhcmFjdGVycygpOwogCi0gICAgYnVmZmVyLnJlc2l6ZShsZW5ndGggKyAxKTsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICB1bnNpZ25lZCBidWZm
ZXJOZWVkcyA9IDE7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7
CiAgICAgICAgIFVDaGFyIGNoID0gY2hhcmFjdGVyc1tpXTsKLSAgICAgICAgYnVmZmVyW2ldID0g
Y2ggJiYgKGNoIDwgMHgyMCB8fCBjaCA+IDB4N2YpID8gJz8nIDogY2g7CisgICAgICAgIGJ1ZmZl
ck5lZWRzICs9ICFjaCB8fCBjaCA8IDB4MjAgfHwgY2ggPiAweDdmID8gNiA6IDE7CisgICAgfQor
CisgICAgYnVmZmVyLnJlc2l6ZShidWZmZXJOZWVkcyk7CisgICAgdW5zaWduZWQgYnVmZmVyVXNl
ZCA9IDA7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAg
ICAgIFVDaGFyIGNoID0gY2hhcmFjdGVyc1tpXTsKKyAgICAgICAgaWYgKCFjaCB8fCBjaCA8IDB4
MjAgfHwgY2ggPiAweDdmKSB7CisgICAgICAgICAgICBidWZmZXJbYnVmZmVyVXNlZCsrXSA9ICdc
XCc7CisgICAgICAgICAgICBidWZmZXJbYnVmZmVyVXNlZCsrXSA9ICd1JzsKKyAgICAgICAgICAg
IGZvciAodW5zaWduZWQgayA9IDA7IGsgPCA0OyBrKyssIGNoIDw8PSA0KSB7CisgICAgICAgICAg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgaGV4RGlnaXRzW10gPSAiMDEyMzQ1Njc4OUFCQ0RFRiI7
CisgICAgICAgICAgICAgICAgYnVmZmVyW2J1ZmZlclVzZWQrK10gPSBoZXhEaWdpdHNbKGNoID4+
IDEyKSAmIDB4Rl07CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
YnVmZmVyW2J1ZmZlclVzZWQrK10gPSBjaDsKICAgICB9Ci0gICAgYnVmZmVyW2xlbmd0aF0gPSAn
XDAnOworICAgIGJ1ZmZlcltidWZmZXJVc2VkKytdID0gJ1wwJzsKIAogICAgIHJldHVybiBidWZm
ZXI7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164263</attachid>
            <date>2012-09-14 19:18:01 -0700</date>
            <delta_ts>2012-09-15 00:33:27 -0700</delta_ts>
            <desc>address comments in comment #4</desc>
            <filename>bug-96749-20120915101732.patch</filename>
            <type>text/plain</type>
            <size>2127</size>
            <attacher name="Glenn Adams">glenn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4Njc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEzODljNWRiNjlkYzBlZjg1ZGE2ZTc2
M2Y3MjA2ZTRhNjYzOGE0YWIuLmY1NDIzZGJlNDZjNGIxZWU5NTcxNjI5MjIzNzY1MGI3NTk4OTM3
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDktMTQgIEdsZW5uIEFkYW1zICA8Z2xlbm5A
c2t5bmF2LmNvbT4KKworICAgICAgICBXVEZTdHJpbmc6OnNob3cgZG9lc24ndCBkdW1wIG5vbi1B
U0NJSSBjaGFyYWN0ZXJzIGluIGEgcmVhZGFibGUgbWFubmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njc0OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIER1bXAgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4g
YSB1c2VmdWwgZm9ybSBmb3IgZGVidWdnaW5nLgorCisgICAgICAgICogd3RmL3RleHQvV1RGU3Ry
aW5nLmNwcDoKKyAgICAgICAgKGFzY2lpRGVidWcpOgorICAgICAgICBEdW1wIG5vbi1BU0NJSSBj
aGFyYWN0ZXJzIChpLmUuLCBVVEYtMTYgY29kZSBlbGVtZW50cykgYXMgd2VsbCBhcyBub24tcHJp
bnRhYmxlIEFTQ0lJIGNoYXJhY3RlcnMKKyAgICAgICAgdXNpbmcgXHVYWFhYIGZvcm1hdC4KKwog
MjAxMi0wOS0xNCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNaW5pbWl6ZSBjb2xsaXNpb25zIHdoZW4gaGFzaGluZyBwYWlycwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZT
dHJpbmcuY3BwCmluZGV4IGJmN2RiYzM0MWVmYTgyNjVhN2RiYzg2N2RlNDhkZGJjZWM3YjUzMTcu
LjFkZTk1YmMwNmM1NjVmMTdiZTE0NDg0MjUzYWMxZjA1ODM4M2UxMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1dURlN0cmluZy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxzdGRhcmcuaD4KICNp
bmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CisjaW5j
bHVkZSA8d3RmL0hleE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KQEAgLTExMzUsMTYgKzExMzYsMTcgQEAgVmVjdG9yPGNoYXI+IGFzY2lpRGVidWco
U3RyaW5nSW1wbCogaW1wbCkKICAgICAgICAgcmV0dXJuIGFzY2lpRGVidWcoU3RyaW5nKCJbbnVs
bF0iKS5pbXBsKCkpOwogCiAgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcjsKLSAgICB1bnNpZ25lZCBs
ZW5ndGggPSBpbXBsLT5sZW5ndGgoKTsKLSAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IGlt
cGwtPmNoYXJhY3RlcnMoKTsKLQotICAgIGJ1ZmZlci5yZXNpemUobGVuZ3RoICsgMSk7Ci0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIFVDaGFyIGNo
ID0gY2hhcmFjdGVyc1tpXTsKLSAgICAgICAgYnVmZmVyW2ldID0gY2ggJiYgKGNoIDwgMHgyMCB8
fCBjaCA+IDB4N2YpID8gJz8nIDogY2g7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGlt
cGwtPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgVUNoYXIgY2ggPSAoKmltcGwpW2ldOworICAg
ICAgICBpZiAoaXNBU0NJSVByaW50YWJsZShjaCkpCisgICAgICAgICAgICBidWZmZXIuYXBwZW5k
KGNoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCdcXCcpOwor
ICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgndScpOworICAgICAgICAgICAgYXBwZW5kVW5zaWdu
ZWRBc0hleEZpeGVkU2l6ZShjaCwgYnVmZmVyLCA0KTsKKyAgICAgICAgfQogICAgIH0KLSAgICBi
dWZmZXJbbGVuZ3RoXSA9ICdcMCc7Ci0KKyAgICBidWZmZXIuYXBwZW5kKCdcMCcpOwogICAgIHJl
dHVybiBidWZmZXI7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164277</attachid>
            <date>2012-09-15 00:33:32 -0700</date>
            <delta_ts>2012-09-17 23:59:21 -0700</delta_ts>
            <desc>fix release build</desc>
            <filename>bug-96749-20120915153304.patch</filename>
            <type>text/plain</type>
            <size>2151</size>
            <attacher name="Glenn Adams">glenn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4Njc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEzODljNWRiNjlkYzBlZjg1ZGE2ZTc2
M2Y3MjA2ZTRhNjYzOGE0YWIuLmY1NDIzZGJlNDZjNGIxZWU5NTcxNjI5MjIzNzY1MGI3NTk4OTM3
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDktMTQgIEdsZW5uIEFkYW1zICA8Z2xlbm5A
c2t5bmF2LmNvbT4KKworICAgICAgICBXVEZTdHJpbmc6OnNob3cgZG9lc24ndCBkdW1wIG5vbi1B
U0NJSSBjaGFyYWN0ZXJzIGluIGEgcmVhZGFibGUgbWFubmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njc0OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIER1bXAgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4g
YSB1c2VmdWwgZm9ybSBmb3IgZGVidWdnaW5nLgorCisgICAgICAgICogd3RmL3RleHQvV1RGU3Ry
aW5nLmNwcDoKKyAgICAgICAgKGFzY2lpRGVidWcpOgorICAgICAgICBEdW1wIG5vbi1BU0NJSSBj
aGFyYWN0ZXJzIChpLmUuLCBVVEYtMTYgY29kZSBlbGVtZW50cykgYXMgd2VsbCBhcyBub24tcHJp
bnRhYmxlIEFTQ0lJIGNoYXJhY3RlcnMKKyAgICAgICAgdXNpbmcgXHVYWFhYIGZvcm1hdC4KKwog
MjAxMi0wOS0xNCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNaW5pbWl6ZSBjb2xsaXNpb25zIHdoZW4gaGFzaGluZyBwYWlycwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZT
dHJpbmcuY3BwCmluZGV4IGJmN2RiYzM0MWVmYTgyNjVhN2RiYzg2N2RlNDhkZGJjZWM3YjUzMTcu
LjcxYjE1ZmJlOWQwZmI2OWYwOThiYTVhMDRlM2I4MWI3Y2Q4NjFjOGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1dURlN0cmluZy5jcHAKQEAgLTI2LDYgKzI2LDkgQEAKICNpbmNsdWRlIDxzdGRhcmcuaD4KICNp
bmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CisjaWZu
ZGVmIE5ERUJVRworI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KKyNlbmRpZgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTExMzUsMTYgKzExMzgsMTcgQEAg
VmVjdG9yPGNoYXI+IGFzY2lpRGVidWcoU3RyaW5nSW1wbCogaW1wbCkKICAgICAgICAgcmV0dXJu
IGFzY2lpRGVidWcoU3RyaW5nKCJbbnVsbF0iKS5pbXBsKCkpOwogCiAgICAgVmVjdG9yPGNoYXI+
IGJ1ZmZlcjsKLSAgICB1bnNpZ25lZCBsZW5ndGggPSBpbXBsLT5sZW5ndGgoKTsKLSAgICBjb25z
dCBVQ2hhciogY2hhcmFjdGVycyA9IGltcGwtPmNoYXJhY3RlcnMoKTsKLQotICAgIGJ1ZmZlci5y
ZXNpemUobGVuZ3RoICsgMSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
KytpKSB7Ci0gICAgICAgIFVDaGFyIGNoID0gY2hhcmFjdGVyc1tpXTsKLSAgICAgICAgYnVmZmVy
W2ldID0gY2ggJiYgKGNoIDwgMHgyMCB8fCBjaCA+IDB4N2YpID8gJz8nIDogY2g7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGltcGwtPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgVUNo
YXIgY2ggPSAoKmltcGwpW2ldOworICAgICAgICBpZiAoaXNBU0NJSVByaW50YWJsZShjaCkpCisg
ICAgICAgICAgICBidWZmZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICBidWZmZXIuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgndScpOwor
ICAgICAgICAgICAgYXBwZW5kVW5zaWduZWRBc0hleEZpeGVkU2l6ZShjaCwgYnVmZmVyLCA0KTsK
KyAgICAgICAgfQogICAgIH0KLSAgICBidWZmZXJbbGVuZ3RoXSA9ICdcMCc7Ci0KKyAgICBidWZm
ZXIuYXBwZW5kKCdcMCcpOwogICAgIHJldHVybiBidWZmZXI7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164502</attachid>
            <date>2012-09-17 23:59:26 -0700</date>
            <delta_ts>2012-09-18 10:57:10 -0700</delta_ts>
            <desc>address comment #20</desc>
            <filename>bug-96749-20120918145854.patch</filename>
            <type>text/plain</type>
            <size>2332</size>
            <attacher name="Glenn Adams">glenn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA4MzZjOGU1YzVmYTZlYmVhMmRkYjZl
MzM1ZmU5NmU3YThkODgzNGUuLjI0OTJkNWYzNjhiNDExN2UxNDkxYTI2NmFmMGNjZjJlMWRmMzlm
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTItMDktMTcgIEdsZW5uIEFkYW1zICA8Z2xlbm5A
c2t5bmF2LmNvbT4KIAorICAgICAgICBXVEZTdHJpbmc6OnNob3cgZG9lc24ndCBkdW1wIG5vbi1B
U0NJSSBjaGFyYWN0ZXJzIGluIGEgcmVhZGFibGUgbWFubmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njc0OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIER1bXAgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4g
YSB1c2VmdWwgZm9ybSBmb3IgZGVidWdnaW5nLgorCisgICAgICAgICogd3RmL3RleHQvV1RGU3Ry
aW5nLmNwcDoKKyAgICAgICAgKGFzY2lpRGVidWcpOgorICAgICAgICBEdW1wIG5vbi1BU0NJSSBj
aGFyYWN0ZXJzIChpLmUuLCBVVEYtMTYgY29kZSBlbGVtZW50cykgYXMgd2VsbCBhcyBub24tcHJp
bnRhYmxlIEFTQ0lJIGNoYXJhY3RlcnMKKyAgICAgICAgdXNpbmcgXHVYWFhYIGZvcm1hdC4gQWxz
byBlc2NhcGUgXCBhcyBcXCBpbiBvcmRlciB0byByZW1vdmUgYW1iaWd1aXR5LgorCisyMDEyLTA5
LTE3ICBHbGVubiBBZGFtcyAgPGdsZW5uQHNreW5hdi5jb20+CisKICAgICAgICAgSW5jbHVkaW5n
IEhleE51bWJlci5oIGZhaWxzIGJ1aWxkIGlmIGhleERpZ2l0c0Zvck1vZGUgaXMgbm90IHJlZmVy
ZW5jZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2
ODczCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAppbmRleCBiODlhY2I2NjM5ZjExZTUyZGQy
YWRhMWUyMzkyNWE1ZjcwY2ZhZTE4Li45ZjczOWM5MWI3NjU3ZGJhNDNjZGYxMzM5MjAzOTRjYWEx
NGY0OWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSA8c3RkYXJnLmg+CiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRl
IDx3dGYvRGF0YUxvZy5oPgorI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMTM1LDE2ICsxMTM2LDE5IEBAIFZl
Y3RvcjxjaGFyPiBhc2NpaURlYnVnKFN0cmluZ0ltcGwqIGltcGwpCiAgICAgICAgIHJldHVybiBh
c2NpaURlYnVnKFN0cmluZygiW251bGxdIikuaW1wbCgpKTsKIAogICAgIFZlY3RvcjxjaGFyPiBi
dWZmZXI7Ci0gICAgdW5zaWduZWQgbGVuZ3RoID0gaW1wbC0+bGVuZ3RoKCk7Ci0gICAgY29uc3Qg
VUNoYXIqIGNoYXJhY3RlcnMgPSBpbXBsLT5jaGFyYWN0ZXJzKCk7Ci0KLSAgICBidWZmZXIucmVz
aXplKGxlbmd0aCArIDEpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsr
aSkgewotICAgICAgICBVQ2hhciBjaCA9IGNoYXJhY3RlcnNbaV07Ci0gICAgICAgIGJ1ZmZlcltp
XSA9IGNoICYmIChjaCA8IDB4MjAgfHwgY2ggPiAweDdmKSA/ICc/JyA6IGNoOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBpbXBsLT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIFVDaGFy
IGNoID0gKCppbXBsKVtpXTsKKyAgICAgICAgaWYgKGlzQVNDSUlQcmludGFibGUoY2gpKSB7Cisg
ICAgICAgICAgICBpZiAoY2ggPT0gJ1xcJykKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5k
KGNoKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY2gpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBl
bmQoJ3UnKTsKKyAgICAgICAgICAgIGFwcGVuZFVuc2lnbmVkQXNIZXhGaXhlZFNpemUoY2gsIGJ1
ZmZlciwgNCk7CisgICAgICAgIH0KICAgICB9Ci0gICAgYnVmZmVyW2xlbmd0aF0gPSAnXDAnOwot
CisgICAgYnVmZmVyLmFwcGVuZCgnXDAnKTsKICAgICByZXR1cm4gYnVmZmVyOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>