<?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>44403</bug_id>
          
          <creation_ts>2010-08-22 21:13:36 -0700</creation_ts>
          <short_desc>[Qt] -webkit-text-stroke is broken due to Qt::TextBypassShaping</short_desc>
          <delta_ts>2010-08-24 07:12:13 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="QtWebKit Unassigned">webkit-qt-unassigned</assigned_to>
          <cc>ariya.hidayat</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>267744</commentid>
    <comment_count>0</comment_count>
      <attachid>65071</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-22 21:13:36 -0700</bug_when>
    <thetext>Created attachment 65071
Screenshot showing this bug

Since there is no way to pass the Qt::TextBypassShaping flag to QPainterPath::addText(), what we stroke may differ from what we fill (and what we paint as a shadow.)

See the attached image for an example of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267745</commentid>
    <comment_count>1</comment_count>
      <attachid>65072</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-22 21:16:54 -0700</bug_when>
    <thetext>Created attachment 65072
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267751</commentid>
    <comment_count>2</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-22 21:50:25 -0700</bug_when>
    <thetext>Even with the patch, does that mean if I fill the text first and then stroke it, they will not be the same?
Hopefully drawTextCommon is never called twice with such order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267755</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-22 22:05:14 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Even with the patch, does that mean if I fill the text first and then stroke it, they will not be the same?
&gt; Hopefully drawTextCommon is never called twice with such order.

Fudge! You&apos;re right. The bug can still be triggered by separate calls to strokeText() and fillText() on a CanvasRenderingContext2D.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267756</commentid>
    <comment_count>4</comment_count>
      <attachid>65072</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-22 22:05:53 -0700</bug_when>
    <thetext>Comment on attachment 65072
Proposed patch

Self r-, need to fix this for CRC2D strokeText()/fillText(), too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267809</commentid>
    <comment_count>5</comment_count>
      <attachid>65091</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-23 02:48:13 -0700</bug_when>
    <thetext>Created attachment 65091
Proposed patch v2

To avoid the problem when using the Canvas API, I&apos;ve added a &quot;shouldForceComplexShaping&quot; property to Font (Qt-only.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267833</commentid>
    <comment_count>6</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2010-08-23 04:18:12 -0700</bug_when>
    <thetext>I think that using forceComplexShaping would be shorter and have the same meaning as shouldForceComplexShaping, though it doesn&apos;t matter much.

Still looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267839</commentid>
    <comment_count>7</comment_count>
      <attachid>65101</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-23 04:30:39 -0700</bug_when>
    <thetext>Created attachment 65101
Proposed patch v3

Talked to Simon (IRL) about this and he suggested that I use Font::setCodePath() instead, which is much cleaner than adding a platform-specific member to Font.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267840</commentid>
    <comment_count>8</comment_count>
      <attachid>65101</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-23 04:32:08 -0700</bug_when>
    <thetext>Comment on attachment 65101
Proposed patch v3

A lot cleaner indeed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267842</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-23 04:33:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 65101 [details])
&gt; A lot cleaner indeed!

Still maybe some comments in the ifdef&apos;s would be nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267843</commentid>
    <comment_count>10</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-23 04:34:37 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Still maybe some comments in the ifdef&apos;s would be nice!

Will land with comments. Thanks for the review &lt;3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267845</commentid>
    <comment_count>11</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-23 04:44:59 -0700</bug_when>
    <thetext>Committed r65801: &lt;http://trac.webkit.org/changeset/65801&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268458</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-08-24 03:09:33 -0700</bug_when>
    <thetext>Revision r65801 cherry-picked into qtwebkit-2.1 with commit 1a184f3f6e088a4d5e4afd5ed71d3cb8d07a5a53</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>65071</attachid>
            <date>2010-08-22 21:13:36 -0700</date>
            <delta_ts>2010-08-22 21:13:36 -0700</delta_ts>
            <desc>Screenshot showing this bug</desc>
            <filename>Screenshot--webkit-text-stroke test.png</filename>
            <type>image/png</type>
            <size>24444</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65072</attachid>
            <date>2010-08-22 21:16:54 -0700</date>
            <delta_ts>2010-08-23 02:48:13 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-44403.diff</filename>
            <type>text/plain</type>
            <size>1443</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWFkNjc0OS4uMjc1YjFmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxMC0wOC0yMiAgQW5kcmVhcyBLbGlu
ZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gLXdlYmtpdC10ZXh0LXN0cm9rZSBpcyBicm9rZW4g
ZHVlIHRvIFF0OjpUZXh0QnlwYXNzU2hhcGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MDMKKworICAgICAgICBEb24ndCBieXBhc3MgdGhlIEhh
cmZidXp6IHNoYXBpbmcgaWYgd2UncmUgZHJhd2luZyB0ZXh0CisgICAgICAgIHdpdGggYSBzdHJv
a2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6ZHJhd1RleHRDb21tb24pOgorCisyMDEwLTA4LTIyICBBbmRyZWFzIEtsaW5n
ICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0
aCBSb2hkZSBDaHJpc3RpYW5zZW4uCiAKICAgICAgICAgW1F0XSBHcmFwaGljc0NvbnRleHQ6IFNp
bXBsaWZ5IGdldHRpbmcgdGhlIGNsaXAgYm91bmRpbmcgcmVjdApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9Gb250UXQuY3BwCmluZGV4IDU5MzIwY2IuLjhlZGQzNTYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCBzdGF0aWMgdm9p
ZCBkcmF3VGV4dENvbW1vbihHcmFwaGljc0NvbnRleHQqIGN0eCwgY29uc3QgVGV4dFJ1biYgcnVu
LCBjb25zdCBGbG9hdAogICAgIGludCBmbGFncyA9IHJ1bi5ydGwoKSA/IFF0OjpUZXh0Rm9yY2VS
aWdodFRvTGVmdCA6IFF0OjpUZXh0Rm9yY2VMZWZ0VG9SaWdodDsKICNpZiBRVF9WRVJTSU9OID49
IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNywgMCkKICAgICAvLyBTZWUgUVdlYlBhZ2VQcml2YXRlOjpR
V2ViUGFnZVByaXZhdGUoKSB3aGVyZSB0aGUgZGVmYXVsdCBwYXRoIGlzIHNldCB0byBDb21wbGV4
IGZvciBRdCA0LjYgYW5kIGVhcmxpZXIuCi0gICAgaWYgKCFpc0NvbXBsZXhUZXh0KQorICAgIGlm
ICghaXNDb21wbGV4VGV4dCAmJiAhKGN0eC0+dGV4dERyYXdpbmdNb2RlKCkgJiBjVGV4dFN0cm9r
ZSkpCiAgICAgICAgIGZsYWdzIHw9IFF0OjpUZXh0QnlwYXNzU2hhcGluZzsKICNlbmRpZgogICAg
IGlmIChoYXNTaGFkb3cpIHsK
</data>
<flag name="review"
          id="53751"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65091</attachid>
            <date>2010-08-23 02:48:13 -0700</date>
            <delta_ts>2010-08-23 04:30:39 -0700</delta_ts>
            <desc>Proposed patch v2</desc>
            <filename>bug-44403-v2.diff</filename>
            <type>text/plain</type>
            <size>5896</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTNlYzM5ZC4uM2NiYjE1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wOC0yMyAgQW5kcmVhcyBLbGlu
ZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gLXdlYmtpdC10ZXh0LXN0cm9rZSBpcyBicm9rZW4g
ZHVlIHRvIFF0OjpUZXh0QnlwYXNzU2hhcGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MDMKKworICAgICAgICBDYW52YXMgd2lsbCBub3cgYWx3
YXlzIHRha2UgdGhlIGNvbXBsZXggdGV4dCBwYXRoLAorICAgICAgICBhcyB3aWxsIHRleHQgd2hp
Y2ggaXMgcmVuZGVyZWQgd2l0aCBhIHN0cm9rZS4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmFjY2Vzc0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Rm9udCk6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6b3BlcmF0b3I9
PSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojpjb2RlUGF0aCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3VGV4dENvbW1vbik6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjpzaG91bGRGb3JjZUNvbXBsZXhTaGFwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnQ6OnNldFNob3VsZEZvcmNlQ29tcGxleFNoYXBpbmcpOgorCiAyMDEwLTA4LTIzICBBcml5
YSBIaWRheWF0ICA8YXJpeWFAc2VuY2hhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA1OGVjMWQwLi42MjViMWNkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xODQ1
LDYgKzE4NDUsMTEgQEAgY29uc3QgRm9udCYgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphY2Nl
c3NGb250KCkKIHsKICAgICBpZiAoIXN0YXRlKCkubV9yZWFsaXplZEZvbnQpCiAgICAgICAgIHNl
dEZvbnQoc3RhdGUoKS5tX3VucGFyc2VkRm9udCk7CisjaWYgUExBVEZPUk0oUVQpCisgICAgLy8g
Rm9yY2UgY29tcGxleCBzaGFwaW5nLiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgZmlsbFRleHQoKSB0
byBtYXRjaCBzdHJva2VUZXh0KCkKKyAgICAvLyBzaW5jZSBRUGFpbnRlclBhdGg6OmFkZFRleHQo
KSBoYXMgbm8gd2F5IHRvIHR1cm4gb2ZmIHNoYXBpbmcuCisgICAgc3RhdGUoKS5tX2ZvbnQuc2V0
U2hvdWxkRm9yY2VDb21wbGV4U2hhcGluZyh0cnVlKTsKKyNlbmRpZgogICAgIHJldHVybiBzdGF0
ZSgpLm1fZm9udDsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggMGU5M2Q0
Zi4uY2Q4MzEwMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC02MCw2ICs2MCw5
IEBAIEZvbnQ6OkZvbnQoKQogICAgICwgbV93b3JkU3BhY2luZygwKQogICAgICwgbV9pc1BsYXRm
b3JtRm9udChmYWxzZSkKICAgICAsIG1fbmVlZHNUcmFuc2NvZGluZyhmYWxzZSkKKyNpZiBQTEFU
Rk9STShRVCkKKyAgICAsIG1fc2hvdWxkRm9yY2VDb21wbGV4U2hhcGluZyhmYWxzZSkKKyNlbmRp
ZgogewogfQogCkBAIC02OSw2ICs3Miw5IEBAIEZvbnQ6OkZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBmZCwgc2hvcnQgbGV0dGVyU3BhY2luZywgc2hvcnQgd29yZFNwYWNpbmcpCiAgICAgLCBt
X3dvcmRTcGFjaW5nKHdvcmRTcGFjaW5nKQogICAgICwgbV9pc1BsYXRmb3JtRm9udChmYWxzZSkK
ICAgICAsIG1fbmVlZHNUcmFuc2NvZGluZyhmb250VHJhbnNjb2RlcigpLm5lZWRzVHJhbnNjb2Rp
bmcoZmQpKQorI2lmIFBMQVRGT1JNKFFUKQorICAgICwgbV9zaG91bGRGb3JjZUNvbXBsZXhTaGFw
aW5nKGZhbHNlKQorI2VuZGlmCiB7CiB9CiAKQEAgLTc3LDYgKzgzLDkgQEAgRm9udDo6Rm9udChj
b25zdCBGb250UGxhdGZvcm1EYXRhJiBmb250RGF0YSwgYm9vbCBpc1ByaW50ZXJGb250LCBGb250
U21vb3RoaW5nTW8KICAgICAsIG1fbGV0dGVyU3BhY2luZygwKQogICAgICwgbV93b3JkU3BhY2lu
ZygwKQogICAgICwgbV9pc1BsYXRmb3JtRm9udCh0cnVlKQorI2lmIFBMQVRGT1JNKFFUKQorICAg
ICwgbV9zaG91bGRGb3JjZUNvbXBsZXhTaGFwaW5nKGZhbHNlKQorI2VuZGlmCiB7CiAgICAgbV9m
b250RGVzY3JpcHRpb24uc2V0VXNlUHJpbnRlckZvbnQoaXNQcmludGVyRm9udCk7CiAgICAgbV9m
b250RGVzY3JpcHRpb24uc2V0Rm9udFNtb290aGluZyhmb250U21vb3RoaW5nTW9kZSk7CkBAIC05
MSw2ICsxMDAsOSBAQCBGb250OjpGb250KGNvbnN0IEZvbnQmIG90aGVyKQogICAgICwgbV93b3Jk
U3BhY2luZyhvdGhlci5tX3dvcmRTcGFjaW5nKQogICAgICwgbV9pc1BsYXRmb3JtRm9udChvdGhl
ci5tX2lzUGxhdGZvcm1Gb250KQogICAgICwgbV9uZWVkc1RyYW5zY29kaW5nKGZvbnRUcmFuc2Nv
ZGVyKCkubmVlZHNUcmFuc2NvZGluZyhvdGhlci5tX2ZvbnREZXNjcmlwdGlvbikpCisjaWYgUExB
VEZPUk0oUVQpCisgICAgLCBtX3Nob3VsZEZvcmNlQ29tcGxleFNoYXBpbmcoZmFsc2UpCisjZW5k
aWYKIHsKIH0KIApAQCAtMTAyLDYgKzExNCw5IEBAIEZvbnQmIEZvbnQ6Om9wZXJhdG9yPShjb25z
dCBGb250JiBvdGhlcikKICAgICBtX3dvcmRTcGFjaW5nID0gb3RoZXIubV93b3JkU3BhY2luZzsK
ICAgICBtX2lzUGxhdGZvcm1Gb250ID0gb3RoZXIubV9pc1BsYXRmb3JtRm9udDsKICAgICBtX25l
ZWRzVHJhbnNjb2RpbmcgPSBvdGhlci5tX25lZWRzVHJhbnNjb2Rpbmc7CisjaWYgUExBVEZPUk0o
UVQpCisgICAgbV9zaG91bGRGb3JjZUNvbXBsZXhTaGFwaW5nID0gb3RoZXIubV9zaG91bGRGb3Jj
ZUNvbXBsZXhTaGFwaW5nOworI2VuZGlmCiAgICAgcmV0dXJuICp0aGlzOwogfQogCkBAIC0xMTcs
NiArMTMyLDkgQEAgYm9vbCBGb250OjpvcGVyYXRvcj09KGNvbnN0IEZvbnQmIG90aGVyKSBjb25z
dAogICAgIEZvbnRTZWxlY3Rvciogc2Vjb25kID0gb3RoZXIubV9mb250TGlzdCA/IG90aGVyLm1f
Zm9udExpc3QtPmZvbnRTZWxlY3RvcigpIDogMDsKICAgICAKICAgICByZXR1cm4gZmlyc3QgPT0g
c2Vjb25kCisjaWYgUExBVEZPUk0oUVQpCisgICAgICAgICAgICYmIG1fc2hvdWxkRm9yY2VDb21w
bGV4U2hhcGluZyA9PSBvdGhlci5tX3Nob3VsZEZvcmNlQ29tcGxleFNoYXBpbmcKKyNlbmRpZgog
ICAgICAgICAgICAmJiBtX2ZvbnREZXNjcmlwdGlvbiA9PSBvdGhlci5tX2ZvbnREZXNjcmlwdGlv
bgogICAgICAgICAgICAmJiBtX2xldHRlclNwYWNpbmcgPT0gb3RoZXIubV9sZXR0ZXJTcGFjaW5n
CiAgICAgICAgICAgICYmIG1fd29yZFNwYWNpbmcgPT0gb3RoZXIubV93b3JkU3BhY2luZwpAQCAt
MjczLDcgKzI5MSw3IEBAIEZvbnQ6OkNvZGVQYXRoIEZvbnQ6OmNvZGVQYXRoKGNvbnN0IFRleHRS
dW4mIHJ1bikgY29uc3QKICAgICAgICAgcmV0dXJuIHNfY29kZVBhdGg7CiAKICNpZiBQTEFURk9S
TShRVCkKLSAgICBpZiAocnVuLnBhZGRpbmcoKSB8fCBydW4ucnRsKCkgfHwgaXNTbWFsbENhcHMo
KSB8fCB3b3JkU3BhY2luZygpIHx8IGxldHRlclNwYWNpbmcoKSkKKyAgICBpZiAobV9zaG91bGRG
b3JjZUNvbXBsZXhTaGFwaW5nIHx8IHJ1bi5wYWRkaW5nKCkgfHwgcnVuLnJ0bCgpIHx8IGlzU21h
bGxDYXBzKCkgfHwgd29yZFNwYWNpbmcoKSB8fCBsZXR0ZXJTcGFjaW5nKCkpCiAgICAgICAgIHJl
dHVybiBDb21wbGV4OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggZDZj
ZjE0MC4uODAyNjIzOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKQEAgLTE0NSw2ICsxNDUs
OCBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShRVCkKICAgICBRRm9udCBmb250KCkgY29uc3Q7
CisgICAgdm9pZCBzZXRTaG91bGRGb3JjZUNvbXBsZXhTaGFwaW5nKGJvb2wpOworICAgIGJvb2wg
c2hvdWxkRm9yY2VDb21wbGV4U2hhcGluZygpIGNvbnN0OwogI2VuZGlmCiAKICAgICBzdGF0aWMg
dm9pZCBzZXRTaG91bGRVc2VTbW9vdGhpbmcoYm9vbCk7CkBAIC0yMjEsNiArMjIzLDkgQEAgcHJp
dmF0ZToKICAgICBzaG9ydCBtX3dvcmRTcGFjaW5nOwogICAgIGJvb2wgbV9pc1BsYXRmb3JtRm9u
dDsKICAgICBib29sIG1fbmVlZHNUcmFuc2NvZGluZzsKKyNpZiBQTEFURk9STShRVCkKKyAgICBi
b29sIG1fc2hvdWxkRm9yY2VDb21wbGV4U2hhcGluZzsKKyNlbmRpZgogfTsKIAogaW5saW5lIEZv
bnQ6On5Gb250KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9u
dFF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAppbmRleCA1
OTMyMGNiLi44YzE3NzI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3Bw
CkBAIC0xNjksNyArMTY5LDcgQEAgc3RhdGljIHZvaWQgZHJhd1RleHRDb21tb24oR3JhcGhpY3ND
b250ZXh0KiBjdHgsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXQKICAgICBpbnQgZmxh
Z3MgPSBydW4ucnRsKCkgPyBRdDo6VGV4dEZvcmNlUmlnaHRUb0xlZnQgOiBRdDo6VGV4dEZvcmNl
TGVmdFRvUmlnaHQ7CiAjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDcsIDAp
CiAgICAgLy8gU2VlIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKCkgd2hlcmUgdGhl
IGRlZmF1bHQgcGF0aCBpcyBzZXQgdG8gQ29tcGxleCBmb3IgUXQgNC42IGFuZCBlYXJsaWVyLgot
ICAgIGlmICghaXNDb21wbGV4VGV4dCkKKyAgICBpZiAoIWlzQ29tcGxleFRleHQgJiYgIShjdHgt
PnRleHREcmF3aW5nTW9kZSgpICYgY1RleHRTdHJva2UpKQogICAgICAgICBmbGFncyB8PSBRdDo6
VGV4dEJ5cGFzc1NoYXBpbmc7CiAjZW5kaWYKICAgICBpZiAoaGFzU2hhZG93KSB7CkBAIC0zMzMs
NSArMzMzLDE1IEBAIFFGb250IEZvbnQ6OmZvbnQoKSBjb25zdAogICAgIHJldHVybiBmOwogfQog
Citib29sIEZvbnQ6OnNob3VsZEZvcmNlQ29tcGxleFNoYXBpbmcoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3Nob3VsZEZvcmNlQ29tcGxleFNoYXBpbmc7Cit9CisKK3ZvaWQgRm9udDo6c2V0U2hv
dWxkRm9yY2VDb21wbGV4U2hhcGluZyhib29sIGIpCit7CisgICAgbV9zaG91bGRGb3JjZUNvbXBs
ZXhTaGFwaW5nID0gYjsKK30KKwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65101</attachid>
            <date>2010-08-23 04:30:39 -0700</date>
            <delta_ts>2010-08-23 04:32:08 -0700</delta_ts>
            <desc>Proposed patch v3</desc>
            <filename>bug-44403-v3.diff</filename>
            <type>text/plain</type>
            <size>2879</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDNjOTIxNi4uZjFkZWVlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wOC0yMyAgQW5kcmVhcyBLbGlu
ZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gLXdlYmtpdC10ZXh0LXN0cm9rZSBpcyBicm9rZW4g
ZHVlIHRvIFF0OjpUZXh0QnlwYXNzU2hhcGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MDMKKworICAgICAgICBEb24ndCBieXBhc3MgdGhlIEhh
cmZidXp6IHNoYXBpbmcgaWYgd2UncmUgZHJhd2luZyB0ZXh0IHdpdGggYSBzdHJva2UuCisgICAg
ICAgIEZvciBjYW52YXMsIGFsd2F5cyB1c2UgY29tcGxleCB0ZXh0IHNoYXBpbmcgc2luY2Ugc3Ry
b2tlIGFuZCBmaWxsIGFyZSBkZWNvdXBsZWQuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjptZWFzdXJlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3F0L0ZvbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3VGV4dENvbW1vbik6
CisKIDIwMTAtMDgtMjMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDU4ZWMxZDAuLmQ0MTlj
M2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAKQEAgLTE3MjcsNyArMTcyNywxOCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6c3Ryb2tlVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsb2F0IHksCiBQYXNz
UmVmUHRyPFRleHRNZXRyaWNzPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6Om1lYXN1cmVUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dE1ldHJpY3M+IG1ldHJpY3Mg
PSBUZXh0TWV0cmljczo6Y3JlYXRlKCk7CisKKyNpZiBQTEFURk9STShRVCkKKyAgICBGb250OjpD
b2RlUGF0aCBvbGRDb2RlUGF0aCA9IEZvbnQ6OmNvZGVQYXRoKCk7CisgICAgRm9udDo6c2V0Q29k
ZVBhdGgoRm9udDo6Q29tcGxleCk7CisjZW5kaWYKKwogICAgIG1ldHJpY3MtPnNldFdpZHRoKGFj
Y2Vzc0ZvbnQoKS53aWR0aChUZXh0UnVuKHRleHQuY2hhcmFjdGVycygpLCB0ZXh0Lmxlbmd0aCgp
KSkpOworCisjaWYgUExBVEZPUk0oUVQpCisgICAgRm9udDo6c2V0Q29kZVBhdGgob2xkQ29kZVBh
dGgpOworI2VuZGlmCisKICAgICByZXR1cm4gbWV0cmljczsKIH0KIApAQCAtMTgzOCw3ICsxODQ5
LDE3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNv
bnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAjZW5kaWYKIAogICAgIGMtPnNldFRleHRE
cmF3aW5nTW9kZShmaWxsID8gY1RleHRGaWxsIDogY1RleHRTdHJva2UpOworCisjaWYgUExBVEZP
Uk0oUVQpCisgICAgRm9udDo6Q29kZVBhdGggb2xkQ29kZVBhdGggPSBGb250Ojpjb2RlUGF0aCgp
OworICAgIEZvbnQ6OnNldENvZGVQYXRoKEZvbnQ6OkNvbXBsZXgpOworI2VuZGlmCisKICAgICBj
LT5kcmF3QmlkaVRleHQoZm9udCwgdGV4dFJ1biwgbG9jYXRpb24pOworCisjaWYgUExBVEZPUk0o
UVQpCisgICAgRm9udDo6c2V0Q29kZVBhdGgob2xkQ29kZVBhdGgpOworI2VuZGlmCiB9CiAKIGNv
bnN0IEZvbnQmIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YWNjZXNzRm9udCgpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKaW5kZXggNTkzMjBjYi4uOGVkZDM1NiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcApAQCAtMTY5LDcgKzE2OSw3IEBA
IHN0YXRpYyB2b2lkIGRyYXdUZXh0Q29tbW9uKEdyYXBoaWNzQ29udGV4dCogY3R4LCBjb25zdCBU
ZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0CiAgICAgaW50IGZsYWdzID0gcnVuLnJ0bCgpID8gUXQ6
OlRleHRGb3JjZVJpZ2h0VG9MZWZ0IDogUXQ6OlRleHRGb3JjZUxlZnRUb1JpZ2h0OwogI2lmIFFU
X1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA3LCAwKQogICAgIC8vIFNlZSBRV2ViUGFn
ZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZSgpIHdoZXJlIHRoZSBkZWZhdWx0IHBhdGggaXMgc2V0
IHRvIENvbXBsZXggZm9yIFF0IDQuNiBhbmQgZWFybGllci4KLSAgICBpZiAoIWlzQ29tcGxleFRl
eHQpCisgICAgaWYgKCFpc0NvbXBsZXhUZXh0ICYmICEoY3R4LT50ZXh0RHJhd2luZ01vZGUoKSAm
IGNUZXh0U3Ryb2tlKSkKICAgICAgICAgZmxhZ3MgfD0gUXQ6OlRleHRCeXBhc3NTaGFwaW5nOwog
I2VuZGlmCiAgICAgaWYgKGhhc1NoYWRvdykgewo=
</data>
<flag name="review"
          id="53781"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>