<?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>77065</bug_id>
          
          <creation_ts>2012-01-25 18:17:39 -0800</creation_ts>
          <short_desc>Clean up CSSPrimitiveValue::computeLengthDouble().</short_desc>
          <delta_ts>2012-02-29 16:12:13 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Luke Macpherson">macpherson</reporter>
          <assigned_to name="Luke Macpherson">macpherson</assigned_to>
          <cc>eric</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>542831</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-01-25 18:17:39 -0800</bug_when>
    <thetext>clean up CSSPrimitiveValue::computeLengthDouble().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542834</commentid>
    <comment_count>1</comment_count>
      <attachid>124052</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-01-25 18:19:26 -0800</bug_when>
    <thetext>Created attachment 124052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543178</commentid>
    <comment_count>2</comment_count>
      <attachid>124052</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-01-26 09:01:11 -0800</bug_when>
    <thetext>Comment on attachment 124052
Patch

Unofficial r=me (not a reviewer yet)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543296</commentid>
    <comment_count>3</comment_count>
      <attachid>124052</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-01-26 11:06:02 -0800</bug_when>
    <thetext>Comment on attachment 124052
Patch

Some people like to follow a style rule where they don’t modify the values of arguments. It seems that the original author of this function was doing that. In this patch we stop following that style rule, and that eliminates a local variable, but also makes the code seem a bit more oblique to me.

We now also use a hand-written maximum branch instead of the max function. That seems to slightly hurt the code clarity.

I’m not sure these changes are improvements. I don’t feel strongly the other way, so I’m not saying review- but this doesn’t seem great to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543813</commentid>
    <comment_count>4</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-01-26 21:16:28 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 124052 [details])
&gt; Some people like to follow a style rule where they don’t modify the values of arguments. It seems that the original author of this function was doing that. In this patch we stop following that style rule, and that eliminates a local variable, but also makes the code seem a bit more oblique to me.

New code is better because:
1) The current code uses two variables to represent what is effectively one piece of state.
2) The state space you have to think about has doubled when analyzing the code.
3) The new code is strictly more efficient, saving a few unnecessary computations.

&gt; We now also use a hand-written maximum branch instead of the max function. That seems to slightly hurt the code clarity.

The new code is better because:
1) The zoomedResult is now only returned from a single, obvious location.
2) It is more efficient because the multiple branches can be skipped when the zoomedResult is &gt; 1.
3) It more clearly reflects the intent of the comment.

&gt; I’m not sure these changes are improvements. I don’t feel strongly the other way, so I’m not saying review- but this doesn’t seem great to me.

It&apos;s a small difference, but as someone who looks at this code almost daily, I thought the cleanup was worthwhile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543839</commentid>
    <comment_count>5</comment_count>
      <attachid>124262</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-01-26 22:24:19 -0800</bug_when>
    <thetext>Created attachment 124262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566279</commentid>
    <comment_count>6</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-02-27 19:14:25 -0800</bug_when>
    <thetext>Just wanted to ping this patch to see if someone will review the second patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566337</commentid>
    <comment_count>7</comment_count>
      <attachid>129180</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-02-27 20:44:43 -0800</bug_when>
    <thetext>Created attachment 129180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567464</commentid>
    <comment_count>8</comment_count>
      <attachid>129180</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-29 00:33:27 -0800</bug_when>
    <thetext>Comment on attachment 129180
Patch

It&apos;s difficult for me to tell what&apos;s going on here.  I guess &quot;isFontRelativeLength&quot; is true for EMS, EXS and REMS (and nothing else?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567945</commentid>
    <comment_count>9</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-02-29 14:28:10 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 129180 [details])
&gt; It&apos;s difficult for me to tell what&apos;s going on here.  I guess &quot;isFontRelativeLength&quot; is true for EMS, EXS and REMS (and nothing else?)

That is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567952</commentid>
    <comment_count>10</comment_count>
      <attachid>129180</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-29 14:33:46 -0800</bug_when>
    <thetext>Comment on attachment 129180
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568059</commentid>
    <comment_count>11</comment_count>
      <attachid>129180</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 16:12:08 -0800</bug_when>
    <thetext>Comment on attachment 129180
Patch

Clearing flags on attachment: 129180

Committed r109279: &lt;http://trac.webkit.org/changeset/109279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568060</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 16:12:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124052</attachid>
            <date>2012-01-25 18:19:26 -0800</date>
            <delta_ts>2012-01-26 22:24:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77065-20120126131924.patch</filename>
            <type>text/plain</type>
            <size>3067</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAxLTI1ICBMdWtlIE1h
Y3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xlYW4gdXAg
Q1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhEb3VibGUoKS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDY1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcgb25seSAvIG5vIGJl
aGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoRG91Ymxl
KToKKwogMjAxMi0wMS0yNSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlYXBwbHkgRGFuaWVsIEJhdGVzJ3MgYnVpbGQgZml4IGZyb20gcjEwNTg0NyBhZnRlciB0aGUg
ZXhhY3Qgc2FtZSBpc3N1ZSB3YXMgcmVpbnRyb2R1Y2VkIGluIHIxMDU5MzAuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAJKHJldmlzaW9uIDEwNTkzNCkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM5OSwyMyArMzk5LDI0IEBAIGRvdWJsZSBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZUxl
bmd0aEQKICAgICAvLyBmb3IgZm9udCBzaXplcyBpcyBtdWNoIG1vcmUgY29tcGxpY2F0ZWQsIHNp
bmNlIHdlIGhhdmUgdG8gd29ycnkgYWJvdXQgZW5mb3JjaW5nIHRoZSBtaW5pbXVtIGZvbnQgc2l6
ZSBwcmVmZXJlbmNlCiAgICAgLy8gYXMgd2VsbCBhcyBlbmZvcmNpbmcgdGhlIGltcGxpY2l0ICJz
bWFydCBtaW5pbXVtLiIgIEluIGFkZGl0aW9uIHRoZSBDU1MgcHJvcGVydHkgdGV4dC1zaXplLWFk
anVzdCBpcyB1c2VkIHRvCiAgICAgLy8gcHJldmVudCB0ZXh0IGZyb20gem9vbWluZyBhdCBhbGwu
ICBUaGVyZWZvcmUgd2Ugd2lsbCBub3QgYXBwbHkgdGhlIHpvb20gaGVyZSBpZiB3ZSBhcmUgY29t
cHV0aW5nIGZvbnQtc2l6ZS4KLSAgICBib29sIGFwcGx5Wm9vbU11bHRpcGxpZXIgPSAhY29tcHV0
aW5nRm9udFNpemU7CisgICAgaWYgKGNvbXB1dGluZ0ZvbnRTaXplKQorICAgICAgICBtdWx0aXBs
aWVyID0gMS4wZjsKIAogICAgIGRvdWJsZSBmYWN0b3IgPSAxLjA7CiAgICAgc3dpdGNoICh0eXBl
KSB7CiAgICAgICAgIGNhc2UgQ1NTX0VNUzoKLSAgICAgICAgICAgIGFwcGx5Wm9vbU11bHRpcGxp
ZXIgPSBmYWxzZTsKKyAgICAgICAgICAgIG11bHRpcGxpZXIgPSAxLjBmOwogICAgICAgICAgICAg
ZmFjdG9yID0gY29tcHV0aW5nRm9udFNpemUgPyBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuc3Bl
Y2lmaWVkU2l6ZSgpIDogc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLmNvbXB1dGVkU2l6ZSgpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTX0VYUzoKICAgICAgICAgICAgIC8v
IEZJWE1FOiBXZSBoYXZlIGEgYnVnIHJpZ2h0IG5vdyB3aGVyZSB0aGUgem9vbSB3aWxsIGJlIGFw
cGxpZWQgdHdpY2UgdG8gRVggdW5pdHMuCiAgICAgICAgICAgICAvLyBXZSByZWFsbHkgbmVlZCB0
byBjb21wdXRlIEVYIHVzaW5nIGZvbnRNZXRyaWNzIGZvciB0aGUgb3JpZ2luYWwgc3BlY2lmaWVk
U2l6ZSBhbmQgbm90IHVzZQogICAgICAgICAgICAgLy8gb3VyIGFjdHVhbCBjb25zdHJ1Y3RlZCBy
ZW5kZXJpbmcgZm9udC4KLSAgICAgICAgICAgIGFwcGx5Wm9vbU11bHRpcGxpZXIgPSBmYWxzZTsK
KyAgICAgICAgICAgIG11bHRpcGxpZXIgPSAxLjBmOwogICAgICAgICAgICAgZmFjdG9yID0gc3R5
bGUtPmZvbnRNZXRyaWNzKCkueEhlaWdodCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQ1NTX1JFTVM6Ci0gICAgICAgICAgICBhcHBseVpvb21NdWx0aXBsaWVyID0gZmFsc2U7
CisgICAgICAgICAgICBtdWx0aXBsaWVyID0gMS4wZjsKICAgICAgICAgICAgIGZhY3RvciA9IGNv
bXB1dGluZ0ZvbnRTaXplID8gcm9vdFN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5zcGVjaWZpZWRT
aXplKCkgOiByb290U3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLmNvbXB1dGVkU2l6ZSgpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTX1BYOgpAQCAtNDQyLDE0ICs0NDMsMTUg
QEAgZG91YmxlIENTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoRAogICAgIH0KIAogICAg
IGRvdWJsZSByZXN1bHQgPSBnZXREb3VibGVWYWx1ZSgpICogZmFjdG9yOwotICAgIGlmICghYXBw
bHlab29tTXVsdGlwbGllciB8fCBtdWx0aXBsaWVyID09IDEuMGYpCisgICAgaWYgKG11bHRpcGxp
ZXIgPT0gMS4wZikKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAgIC8vIEFueSBvcmlnaW5h
bCByZXN1bHQgdGhhdCB3YXMgPj0gMSBzaG91bGQgbm90IGJlIGFsbG93ZWQgdG8gZmFsbCBiZWxv
dyAxLiAgVGhpcyBrZWVwcyBib3JkZXIgbGluZXMgZnJvbQogICAgIC8vIHZhbmlzaGluZy4KICAg
ICBkb3VibGUgem9vbWVkUmVzdWx0ID0gcmVzdWx0ICogbXVsdGlwbGllcjsKLSAgICBpZiAocmVz
dWx0ID49IDEuMCkKLSAgICAgICAgem9vbWVkUmVzdWx0ID0gbWF4KDEuMCwgem9vbWVkUmVzdWx0
KTsKKyAgICBpZiAoem9vbWVkUmVzdWx0IDwgMS4wICYmIHJlc3VsdCA+PSAxLjApCisgICAgICAg
IHJldHVybiAxLjA7CisKICAgICByZXR1cm4gem9vbWVkUmVzdWx0OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124262</attachid>
            <date>2012-01-26 22:24:19 -0800</date>
            <delta_ts>2012-02-27 20:44:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77065-20120127172417.patch</filename>
            <type>text/plain</type>
            <size>3830</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNjA4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAxLTI2ICBMdWtlIE1h
Y3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xlYW4gdXAg
Q1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhEb3VibGUoKS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDY1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcgb25seSAvIG5vIGJl
aGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoRG91Ymxl
KToKKwogMjAxMi0wMS0yNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNTQ4Ni4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkocmV2aXNpb24gMTA2MDg4KQor
KysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzkzLDMyICszOTMsMjIgQEAgdGVtcGxhdGU8PiBkb3VibGUgQ1NTUHJpbWl0aXZlVmFs
dWU6OmNvbQogCiBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhEb3VibGUo
UmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBmbG9hdCBtdWx0aXBs
aWVyLCBib29sIGNvbXB1dGluZ0ZvbnRTaXplKQogewotICAgIHVuc2lnbmVkIHNob3J0IHR5cGUg
PSBwcmltaXRpdmVUeXBlKCk7Ci0KLSAgICAvLyBXZSBkbyBub3QgYXBwbHkgdGhlIHpvb20gZmFj
dG9yIHdoZW4gd2UgYXJlIGNvbXB1dGluZyB0aGUgdmFsdWUgb2YgdGhlIGZvbnQtc2l6ZSBwcm9w
ZXJ0eS4gIFRoZSB6b29taW5nCi0gICAgLy8gZm9yIGZvbnQgc2l6ZXMgaXMgbXVjaCBtb3JlIGNv
bXBsaWNhdGVkLCBzaW5jZSB3ZSBoYXZlIHRvIHdvcnJ5IGFib3V0IGVuZm9yY2luZyB0aGUgbWlu
aW11bSBmb250IHNpemUgcHJlZmVyZW5jZQotICAgIC8vIGFzIHdlbGwgYXMgZW5mb3JjaW5nIHRo
ZSBpbXBsaWNpdCAic21hcnQgbWluaW11bS4iICBJbiBhZGRpdGlvbiB0aGUgQ1NTIHByb3BlcnR5
IHRleHQtc2l6ZS1hZGp1c3QgaXMgdXNlZCB0bwotICAgIC8vIHByZXZlbnQgdGV4dCBmcm9tIHpv
b21pbmcgYXQgYWxsLiAgVGhlcmVmb3JlIHdlIHdpbGwgbm90IGFwcGx5IHRoZSB6b29tIGhlcmUg
aWYgd2UgYXJlIGNvbXB1dGluZyBmb250LXNpemUuCi0gICAgYm9vbCBhcHBseVpvb21NdWx0aXBs
aWVyID0gIWNvbXB1dGluZ0ZvbnRTaXplOwotCi0gICAgZG91YmxlIGZhY3RvciA9IDEuMDsKLSAg
ICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBkb3VibGUgZmFjdG9yOworICAgIHN3aXRjaCAocHJpbWl0
aXZlVHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQ1NTX0VNUzoKLSAgICAgICAgICAgIGFwcGx5Wm9v
bU11bHRpcGxpZXIgPSBmYWxzZTsKICAgICAgICAgICAgIGZhY3RvciA9IGNvbXB1dGluZ0ZvbnRT
aXplID8gc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLnNwZWNpZmllZFNpemUoKSA6IHN0eWxlLT5m
b250RGVzY3JpcHRpb24oKS5jb21wdXRlZFNpemUoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIENTU19FWFM6CiAgICAgICAgICAgICAvLyBGSVhNRTogV2UgaGF2ZSBhIGJ1ZyBy
aWdodCBub3cgd2hlcmUgdGhlIHpvb20gd2lsbCBiZSBhcHBsaWVkIHR3aWNlIHRvIEVYIHVuaXRz
LgogICAgICAgICAgICAgLy8gV2UgcmVhbGx5IG5lZWQgdG8gY29tcHV0ZSBFWCB1c2luZyBmb250
TWV0cmljcyBmb3IgdGhlIG9yaWdpbmFsIHNwZWNpZmllZFNpemUgYW5kIG5vdCB1c2UKICAgICAg
ICAgICAgIC8vIG91ciBhY3R1YWwgY29uc3RydWN0ZWQgcmVuZGVyaW5nIGZvbnQuCi0gICAgICAg
ICAgICBhcHBseVpvb21NdWx0aXBsaWVyID0gZmFsc2U7CiAgICAgICAgICAgICBmYWN0b3IgPSBz
dHlsZS0+Zm9udE1ldHJpY3MoKS54SGVpZ2h0KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBDU1NfUkVNUzoKLSAgICAgICAgICAgIGFwcGx5Wm9vbU11bHRpcGxpZXIgPSBmYWxz
ZTsKICAgICAgICAgICAgIGZhY3RvciA9IGNvbXB1dGluZ0ZvbnRTaXplID8gcm9vdFN0eWxlLT5m
b250RGVzY3JpcHRpb24oKS5zcGVjaWZpZWRTaXplKCkgOiByb290U3R5bGUtPmZvbnREZXNjcmlw
dGlvbigpLmNvbXB1dGVkU2l6ZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
Q1NTX1BYOgorICAgICAgICAgICAgZmFjdG9yID0gMS4wOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQ1NTX0NNOgogICAgICAgICAgICAgZmFjdG9yID0gY3NzUGl4ZWxzUGVySW5j
aCAvIDIuNTQ7IC8vICgyLjU0IGNtL2luKQpAQCAtNDQyLDE0ICs0MzIsMjAgQEAgZG91YmxlIENT
U1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoRAogICAgIH0KIAogICAgIGRvdWJsZSByZXN1
bHQgPSBnZXREb3VibGVWYWx1ZSgpICogZmFjdG9yOwotICAgIGlmICghYXBwbHlab29tTXVsdGlw
bGllciB8fCBtdWx0aXBsaWVyID09IDEuMGYpCisKKyAgICAvLyBXZSBkbyBub3QgYXBwbHkgdGhl
IHpvb20gZmFjdG9yIHdoZW4gd2UgYXJlIGNvbXB1dGluZyB0aGUgdmFsdWUgb2YgdGhlIGZvbnQt
c2l6ZSBwcm9wZXJ0eS4gVGhlIHpvb21pbmcKKyAgICAvLyBmb3IgZm9udCBzaXplcyBpcyBtdWNo
IG1vcmUgY29tcGxpY2F0ZWQsIHNpbmNlIHdlIGhhdmUgdG8gd29ycnkgYWJvdXQgZW5mb3JjaW5n
IHRoZSBtaW5pbXVtIGZvbnQgc2l6ZSBwcmVmZXJlbmNlCisgICAgLy8gYXMgd2VsbCBhcyBlbmZv
cmNpbmcgdGhlIGltcGxpY2l0ICJzbWFydCBtaW5pbXVtLiIgSW4gYWRkaXRpb24gdGhlIENTUyBw
cm9wZXJ0eSB0ZXh0LXNpemUtYWRqdXN0IGlzIHVzZWQgdG8KKyAgICAvLyBwcmV2ZW50IHRleHQg
ZnJvbSB6b29taW5nIGF0IGFsbC4gVGhlcmVmb3JlIHdlIHdpbGwgbm90IGFwcGx5IHRoZSB6b29t
IGhlcmUgaWYgd2UgYXJlIGNvbXB1dGluZyBmb250LXNpemUuCisgICAgaWYgKGNvbXB1dGluZ0Zv
bnRTaXplIHx8IGlzRm9udFJlbGF0aXZlTGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAKICAgICAvLyBBbnkgb3JpZ2luYWwgcmVzdWx0IHRoYXQgd2FzID49IDEgc2hvdWxkIG5vdCBi
ZSBhbGxvd2VkIHRvIGZhbGwgYmVsb3cgMS4gIFRoaXMga2VlcHMgYm9yZGVyIGxpbmVzIGZyb20K
ICAgICAvLyB2YW5pc2hpbmcuCiAgICAgZG91YmxlIHpvb21lZFJlc3VsdCA9IHJlc3VsdCAqIG11
bHRpcGxpZXI7Ci0gICAgaWYgKHJlc3VsdCA+PSAxLjApCi0gICAgICAgIHpvb21lZFJlc3VsdCA9
IG1heCgxLjAsIHpvb21lZFJlc3VsdCk7CisgICAgaWYgKHpvb21lZFJlc3VsdCA8IDEuMCAmJiBy
ZXN1bHQgPj0gMS4wKQorICAgICAgICByZXR1cm4gMS4wOworCiAgICAgcmV0dXJuIHpvb21lZFJl
c3VsdDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129180</attachid>
            <date>2012-02-27 20:44:43 -0800</date>
            <delta_ts>2012-02-29 16:12:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77065-20120228154441.patch</filename>
            <type>text/plain</type>
            <size>3992</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTA2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTI3ICBMdWtlIE1h
Y3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xlYW4gdXAg
Q1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhEb3VibGUoKS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDY1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcgb25seSAvIG5vIGJl
aGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoRG91Ymxl
KToKKwogMjAxMi0wMi0yNyAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5l
dD4KIAogICAgICAgICBGaXhlZCBhIHR5cG8gaW4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpk
cmF3SW1hZ2UoSFRNTENhbnZhc0VsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwCShyZXZpc2lvbiAxMDkwNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjksMzMgKzQyOSwy
NiBAQCB0ZW1wbGF0ZTw+IGRvdWJsZSBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tCiAKIGRvdWJsZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZUxlbmd0aERvdWJsZShSZW5kZXJTdHlsZSogc3R5bGUs
IFJlbmRlclN0eWxlKiByb290U3R5bGUsIGZsb2F0IG11bHRpcGxpZXIsIGJvb2wgY29tcHV0aW5n
Rm9udFNpemUpCiB7Ci0gICAgdW5zaWduZWQgc2hvcnQgdHlwZSA9IHByaW1pdGl2ZVR5cGUoKTsK
KyAgICBkb3VibGUgZmFjdG9yOwogCi0gICAgLy8gV2UgZG8gbm90IGFwcGx5IHRoZSB6b29tIGZh
Y3RvciB3aGVuIHdlIGFyZSBjb21wdXRpbmcgdGhlIHZhbHVlIG9mIHRoZSBmb250LXNpemUgcHJv
cGVydHkuICBUaGUgem9vbWluZwotICAgIC8vIGZvciBmb250IHNpemVzIGlzIG11Y2ggbW9yZSBj
b21wbGljYXRlZCwgc2luY2Ugd2UgaGF2ZSB0byB3b3JyeSBhYm91dCBlbmZvcmNpbmcgdGhlIG1p
bmltdW0gZm9udCBzaXplIHByZWZlcmVuY2UKLSAgICAvLyBhcyB3ZWxsIGFzIGVuZm9yY2luZyB0
aGUgaW1wbGljaXQgInNtYXJ0IG1pbmltdW0uIiAgSW4gYWRkaXRpb24gdGhlIENTUyBwcm9wZXJ0
eSB0ZXh0LXNpemUtYWRqdXN0IGlzIHVzZWQgdG8KLSAgICAvLyBwcmV2ZW50IHRleHQgZnJvbSB6
b29taW5nIGF0IGFsbC4gIFRoZXJlZm9yZSB3ZSB3aWxsIG5vdCBhcHBseSB0aGUgem9vbSBoZXJl
IGlmIHdlIGFyZSBjb21wdXRpbmcgZm9udC1zaXplLgotICAgIGJvb2wgYXBwbHlab29tTXVsdGlw
bGllciA9ICFjb21wdXRpbmdGb250U2l6ZTsKLQotICAgIGRvdWJsZSBmYWN0b3IgPSAxLjA7Ci0g
ICAgc3dpdGNoICh0eXBlKSB7CisgICAgc3dpdGNoIChwcmltaXRpdmVUeXBlKCkpIHsKICAgICAg
ICAgY2FzZSBDU1NfRU1TOgotICAgICAgICAgICAgYXBwbHlab29tTXVsdGlwbGllciA9IGZhbHNl
OwogICAgICAgICAgICAgZmFjdG9yID0gY29tcHV0aW5nRm9udFNpemUgPyBzdHlsZS0+Zm9udERl
c2NyaXB0aW9uKCkuc3BlY2lmaWVkU2l6ZSgpIDogc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLmNv
bXB1dGVkU2l6ZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTX0VYUzoK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBoYXZlIGEgYnVnIHJpZ2h0IG5vdyB3aGVyZSB0aGUg
em9vbSB3aWxsIGJlIGFwcGxpZWQgdHdpY2UgdG8gRVggdW5pdHMuCiAgICAgICAgICAgICAvLyBX
ZSByZWFsbHkgbmVlZCB0byBjb21wdXRlIEVYIHVzaW5nIGZvbnRNZXRyaWNzIGZvciB0aGUgb3Jp
Z2luYWwgc3BlY2lmaWVkU2l6ZSBhbmQgbm90IHVzZQogICAgICAgICAgICAgLy8gb3VyIGFjdHVh
bCBjb25zdHJ1Y3RlZCByZW5kZXJpbmcgZm9udC4KLSAgICAgICAgICAgIGFwcGx5Wm9vbU11bHRp
cGxpZXIgPSBmYWxzZTsKICAgICAgICAgICAgIGZhY3RvciA9IHN0eWxlLT5mb250TWV0cmljcygp
LnhIZWlnaHQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU19SRU1TOgot
ICAgICAgICAgICAgYXBwbHlab29tTXVsdGlwbGllciA9IGZhbHNlOwogICAgICAgICAgICAgaWYg
KHJvb3RTdHlsZSkKICAgICAgICAgICAgICAgICBmYWN0b3IgPSBjb21wdXRpbmdGb250U2l6ZSA/
IHJvb3RTdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuc3BlY2lmaWVkU2l6ZSgpIDogcm9vdFN0eWxl
LT5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFNpemUoKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBmYWN0b3IgPSAxLjA7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBDU1NfUFg6CisgICAgICAgICAgICBmYWN0b3IgPSAxLjA7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBDU1NfQ006CiAgICAgICAgICAgICBmYWN0b3IgPSBjc3NQaXhlbHNQ
ZXJJbmNoIC8gMi41NDsgLy8gKDIuNTQgY20vaW4pCkBAIC00ODksMTUgKzQ4MiwxOSBAQCBkb3Vi
bGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhECiAgICAgZWxzZQogICAgICAgICBj
b21wdXRlZFZhbHVlID0gZ2V0RG91YmxlVmFsdWUoKTsKICAgICAKKyAgICAvLyBXZSBkbyBub3Qg
YXBwbHkgdGhlIHpvb20gZmFjdG9yIHdoZW4gd2UgYXJlIGNvbXB1dGluZyB0aGUgdmFsdWUgb2Yg
dGhlIGZvbnQtc2l6ZSBwcm9wZXJ0eS4gVGhlIHpvb21pbmcKKyAgICAvLyBmb3IgZm9udCBzaXpl
cyBpcyBtdWNoIG1vcmUgY29tcGxpY2F0ZWQsIHNpbmNlIHdlIGhhdmUgdG8gd29ycnkgYWJvdXQg
ZW5mb3JjaW5nIHRoZSBtaW5pbXVtIGZvbnQgc2l6ZSBwcmVmZXJlbmNlCisgICAgLy8gYXMgd2Vs
bCBhcyBlbmZvcmNpbmcgdGhlIGltcGxpY2l0ICJzbWFydCBtaW5pbXVtLiIgSW4gYWRkaXRpb24g
dGhlIENTUyBwcm9wZXJ0eSB0ZXh0LXNpemUtYWRqdXN0IGlzIHVzZWQgdG8KKyAgICAvLyBwcmV2
ZW50IHRleHQgZnJvbSB6b29taW5nIGF0IGFsbC4gVGhlcmVmb3JlIHdlIHdpbGwgbm90IGFwcGx5
IHRoZSB6b29tIGhlcmUgaWYgd2UgYXJlIGNvbXB1dGluZyBmb250LXNpemUuCiAgICAgZG91Ymxl
IHJlc3VsdCA9IGNvbXB1dGVkVmFsdWUgKiBmYWN0b3I7Ci0gICAgaWYgKCFhcHBseVpvb21NdWx0
aXBsaWVyIHx8IG11bHRpcGxpZXIgPT0gMS4wZikKKyAgICBpZiAoY29tcHV0aW5nRm9udFNpemUg
fHwgaXNGb250UmVsYXRpdmVMZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAg
IC8vIEFueSBvcmlnaW5hbCByZXN1bHQgdGhhdCB3YXMgPj0gMSBzaG91bGQgbm90IGJlIGFsbG93
ZWQgdG8gZmFsbCBiZWxvdyAxLiAgVGhpcyBrZWVwcyBib3JkZXIgbGluZXMgZnJvbQogICAgIC8v
IHZhbmlzaGluZy4KICAgICBkb3VibGUgem9vbWVkUmVzdWx0ID0gcmVzdWx0ICogbXVsdGlwbGll
cjsKLSAgICBpZiAocmVzdWx0ID49IDEuMCkKLSAgICAgICAgem9vbWVkUmVzdWx0ID0gbWF4KDEu
MCwgem9vbWVkUmVzdWx0KTsKKyAgICBpZiAoem9vbWVkUmVzdWx0IDwgMS4wICYmIHJlc3VsdCA+
PSAxLjApCisgICAgICAgIHJldHVybiAxLjA7CiAgICAgcmV0dXJuIHpvb21lZFJlc3VsdDsKIH0K
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>