<?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>177883</bug_id>
          
          <creation_ts>2017-10-04 10:34:15 -0700</creation_ts>
          <short_desc>TextDecorationPainter::m_wavyOffset should be a float</short_desc>
          <delta_ts>2017-10-04 11:39:34 -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>Text</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=152587</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>buildbot</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1356495</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-04 10:34:15 -0700</bug_when>
    <thetext>Currently TextDecorationPainter::m_wavyOffset should be an int. It should be a float. This is consistent with its original type when this code was extracted from InlineTextBox in the patch for bug #152587.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356501</commentid>
    <comment_count>1</comment_count>
      <attachid>322687</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-04 10:41:33 -0700</bug_when>
    <thetext>Created attachment 322687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356502</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-04 10:44:00 -0700</bug_when>
    <thetext>Attachment 322687 did not pass style-queue:


ERROR: Source/WebCore/rendering/TextDecorationPainter.cpp:246:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356524</commentid>
    <comment_count>3</comment_count>
      <attachid>322687</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-10-04 11:19:36 -0700</bug_when>
    <thetext>Comment on attachment 322687
Patch

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

&gt; Source/WebCore/rendering/TextDecorationPainter.cpp:250
&gt; +    : m_context { context }
&gt; +    , m_decoration { decoration }
&gt; +    , m_wavyOffset { wavyOffsetFromDecoration() }
&gt; +    , m_isPrinting { renderer.document().printing() }
&gt; +    , m_styles { stylesForRenderer(renderer, m_decoration, isFirstLine) }
&gt; +    , m_lineStyle { isFirstLine ? renderer.firstLineStyle() : renderer.style() }

Are we going to do this everywhere? It seems like a lot of churn for zero gain.

&gt; Source/WebCore/rendering/TextDecorationPainter.h:67
&gt;      TextDecoration m_decoration;
&gt; -    int m_wavyOffset { 0 };
&gt; +    float m_wavyOffset;

Looks like these could be re-ordered for better packing (but maybe we never heap-allocate these).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356533</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-04 11:32:30 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 322687 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=322687&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/TextDecorationPainter.cpp:250
&gt; &gt; +    : m_context { context }
&gt; &gt; +    , m_decoration { decoration }
&gt; &gt; +    , m_wavyOffset { wavyOffsetFromDecoration() }
&gt; &gt; +    , m_isPrinting { renderer.document().printing() }
&gt; &gt; +    , m_styles { stylesForRenderer(renderer, m_decoration, isFirstLine) }
&gt; &gt; +    , m_lineStyle { isFirstLine ? renderer.firstLineStyle() : renderer.style() }
&gt; 
&gt; Are we going to do this everywhere? 

I hope so. See bug #176058. 

&gt; It seems like a lot of churn for zero gain.
&gt; 

I found this bug by changing to uniform initializer syntax because implicit conversions are disallowed when using this syntax among other benefits. Obviously, catching the implicit conversion from float to int for m_wavyOffset is not a big gain (m_wavyOffset is always equal to 1). I suspect we may find more significant bugs caused by implicit conversion if we used uniform initializer syntax everywhere.

&gt; &gt; Source/WebCore/rendering/TextDecorationPainter.h:67
&gt; &gt;      TextDecoration m_decoration;
&gt; &gt; -    int m_wavyOffset { 0 };
&gt; &gt; +    float m_wavyOffset;
&gt; 
&gt; Looks like these could be re-ordered for better packing (but maybe we never
&gt; heap-allocate these).

Currently TextDecorationPainter is never heap allocated, but nothing is stopping it from being heap allocated. Regardless, we should look to better pack this data structure from a good programming practice perspective.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356542</commentid>
    <comment_count>5</comment_count>
      <attachid>322687</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-04 11:37:51 -0700</bug_when>
    <thetext>Comment on attachment 322687
Patch

Clearing flags on attachment: 322687

Committed r222862: &lt;http://trac.webkit.org/changeset/222862&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356543</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-04 11:37:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356544</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-04 11:39:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/34816545&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322687</attachid>
            <date>2017-10-04 10:41:33 -0700</date>
            <delta_ts>2017-10-04 11:37:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177883-20171004104132.patch</filename>
            <type>text/plain</type>
            <size>4592</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyODU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWFmYmJmMjFlNWIwYzcw
NjZiMzJmMjlmOGY4ZDNlYzExOTc4MTA4Ni4uZDkzNmQwZWZkOGM0MmE2NTNmNTU4OTU1MjQ1YjU1
YTc4YThmZTYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTEwLTA0ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBUZXh0RGVjb3JhdGlvblBh
aW50ZXI6Om1fd2F2eU9mZnNldCBzaG91bGQgYmUgYSBmbG9hdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3ODgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcjE5NDQ0NyB3ZSBleHRyYWN0ZWQgdGhl
IHRleHQgZGVjb3JhdGlvbiBwYWludGluZyBjb2RlIGZyb20gSW5saW5lVGV4dEJveCBpbnRvCisg
ICAgICAgIFRleHREZWNvcmF0aW9uUGFpbnRlciBhbmQgY2hhbmdlZCB0aGUgZGF0YSB0eXBlIG9m
IHRoZSB3YXZ5IG9mZnNldCBmcm9tIGZsb2F0IHRvIGludC4KKyAgICAgICAgV2UgdXNlIGZsb2F0
aW5nIHBvaW50IG51bWJlcnMgdGhyb3VnaG91dCB0aGUgcGFpbnRpbmcgY29kZSBhbmQgc2hvdWxk
IHN0b3JlIHRoZSB3YXZ5CisgICAgICAgIG9mZnNldCBhcyBhIGZsb2F0LgorCisgICAgICAgICog
cmVuZGVyaW5nL1RleHREZWNvcmF0aW9uUGFpbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0RGVjb3JhdGlvblBhaW50ZXI6OlRleHREZWNvcmF0aW9uUGFpbnRlcik6IFVzZSBDKysgdW5p
Zm9ybSBpbml0aWFsaXplcgorICAgICAgICBzeW50YXggdG8gaW5pdGlhbGl6ZSBtZW1iZXIgZmll
bGRzLgorICAgICAgICAoV2ViQ29yZTo6VGV4dERlY29yYXRpb25QYWludGVyOjpwYWludFRleHRE
ZWNvcmF0aW9uKTogQ2hhbmdlIGludCB0byBmbG9hdC4KKyAgICAgICAgKiByZW5kZXJpbmcvVGV4
dERlY29yYXRpb25QYWludGVyLmg6IFJlbW92ZSB1bm5lY2Vzc2FyeSBlcXVhbCBpbml0aWFsaXpl
ciBmb3IgbV93YXZ5T2Zmc2V0CisgICAgICAgIGFzIHRoaXMgY2xhc3MgaGFzIGV4YWN0bHkgb25l
IGNvbnN0cnVjdG9yIGFuZCBpdCBhbHdheXMgaW5pdGlhbGl6ZXMgaXQuCisKIDIwMTctMTAtMDQg
IE1pZ3VlbCBHb21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
OiBmaXggR1RLIGRlYnVnIGJ1aWxkIGFmdGVyIHIyMjI4NDEuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dERlY29yYXRpb25QYWludGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0RGVjb3JhdGlvblBhaW50ZXIuY3BwCmluZGV4IGNjOGFjZDA3NDJh
YjU2OGY1Nzk4ZTNlNWUwMDZmNzk5MDAwODQ3ZGYuLjM2NzU2MzEyMzRkM2YzYzQ5ZjZlYzA4N2Fl
ZDI5MWRkM2ZkNmUxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
RGVjb3JhdGlvblBhaW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
RGVjb3JhdGlvblBhaW50ZXIuY3BwCkBAIC0yNDIsMTIgKzI0MiwxMiBAQCBzdGF0aWMgU3Ryb2tl
U3R5bGUgdGV4dERlY29yYXRpb25TdHlsZVRvU3Ryb2tlU3R5bGUoVGV4dERlY29yYXRpb25TdHls
ZSBkZWNvcmF0aQogfQogCiBUZXh0RGVjb3JhdGlvblBhaW50ZXI6OlRleHREZWNvcmF0aW9uUGFp
bnRlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFRleHREZWNvcmF0aW9uIGRlY29yYXRpb24s
IGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVyLCBib29sIGlzRmlyc3RMaW5lKQotICAgIDogbV9j
b250ZXh0KGNvbnRleHQpCi0gICAgLCBtX2RlY29yYXRpb24oZGVjb3JhdGlvbikKLSAgICAsIG1f
d2F2eU9mZnNldCh3YXZ5T2Zmc2V0RnJvbURlY29yYXRpb24oKSkKLSAgICAsIG1faXNQcmludGlu
ZyhyZW5kZXJlci5kb2N1bWVudCgpLnByaW50aW5nKCkpCi0gICAgLCBtX3N0eWxlcyhzdHlsZXNG
b3JSZW5kZXJlcihyZW5kZXJlciwgbV9kZWNvcmF0aW9uLCBpc0ZpcnN0TGluZSkpCi0gICAgLCBt
X2xpbmVTdHlsZShpc0ZpcnN0TGluZSA/IHJlbmRlcmVyLmZpcnN0TGluZVN0eWxlKCkgOiByZW5k
ZXJlci5zdHlsZSgpKQorICAgIDogbV9jb250ZXh0IHsgY29udGV4dCB9CisgICAgLCBtX2RlY29y
YXRpb24geyBkZWNvcmF0aW9uIH0KKyAgICAsIG1fd2F2eU9mZnNldCB7IHdhdnlPZmZzZXRGcm9t
RGVjb3JhdGlvbigpIH0KKyAgICAsIG1faXNQcmludGluZyB7IHJlbmRlcmVyLmRvY3VtZW50KCku
cHJpbnRpbmcoKSB9CisgICAgLCBtX3N0eWxlcyB7IHN0eWxlc0ZvclJlbmRlcmVyKHJlbmRlcmVy
LCBtX2RlY29yYXRpb24sIGlzRmlyc3RMaW5lKSB9CisgICAgLCBtX2xpbmVTdHlsZSB7IGlzRmly
c3RMaW5lID8gcmVuZGVyZXIuZmlyc3RMaW5lU3R5bGUoKSA6IHJlbmRlcmVyLnN0eWxlKCkgfQog
ewogfQogCkBAIC0zMjcsMTMgKzMyNywxMyBAQCB2b2lkIFRleHREZWNvcmF0aW9uUGFpbnRlcjo6
cGFpbnRUZXh0RGVjb3JhdGlvbihjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBGbAogICAg
ICAgICAvLyBUaGVzZSBkZWNvcmF0aW9ucyBzaG91bGQgbWF0Y2ggdGhlIHZpc3VhbCBvdmVyZmxv
d3MgY29tcHV0ZWQgaW4gdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucygpCiAgICAgICAgIGlm
IChtX2RlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlvblVuZGVybGluZSkgewogICAgICAgICAgICAg
Y29uc3QgaW50IG9mZnNldCA9IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQobV9saW5lU3R5bGUudGV4
dFVuZGVybGluZVBvc2l0aW9uKCksIG1fbGluZVN0eWxlLmZvbnRNZXRyaWNzKCksIG1faW5saW5l
VGV4dEJveCwgdGV4dERlY29yYXRpb25UaGlja25lc3MpOwotICAgICAgICAgICAgaW50IHdhdnlP
ZmZzZXQgPSBtX3N0eWxlcy51bmRlcmxpbmVTdHlsZSA9PSBUZXh0RGVjb3JhdGlvblN0eWxlV2F2
eSA/IG1fd2F2eU9mZnNldCA6IDA7CisgICAgICAgICAgICBmbG9hdCB3YXZ5T2Zmc2V0ID0gbV9z
dHlsZXMudW5kZXJsaW5lU3R5bGUgPT0gVGV4dERlY29yYXRpb25TdHlsZVdhdnkgPyBtX3dhdnlP
ZmZzZXQgOiAwOwogICAgICAgICAgICAgRmxvYXRQb2ludCBzdGFydCA9IGxvY2FsT3JpZ2luICsg
RmxvYXRTaXplKDAsIG9mZnNldCArIHdhdnlPZmZzZXQpOwogICAgICAgICAgICAgRmxvYXRQb2lu
dCBlbmQgPSBsb2NhbE9yaWdpbiArIEZsb2F0U2l6ZShtX3dpZHRoLCBvZmZzZXQgKyB3YXZ5T2Zm
c2V0KTsKICAgICAgICAgICAgIHBhaW50RGVjb3JhdGlvbihUZXh0RGVjb3JhdGlvblVuZGVybGlu
ZSwgbV9zdHlsZXMudW5kZXJsaW5lU3R5bGUsIG1fc3R5bGVzLnVuZGVybGluZUNvbG9yLCBzdGFy
dCwgZW5kLCBvZmZzZXQpOwogICAgICAgICB9CiAgICAgICAgIGlmIChtX2RlY29yYXRpb24gJiBU
ZXh0RGVjb3JhdGlvbk92ZXJsaW5lKSB7Ci0gICAgICAgICAgICBpbnQgd2F2eU9mZnNldCA9IG1f
c3R5bGVzLm92ZXJsaW5lU3R5bGUgPT0gVGV4dERlY29yYXRpb25TdHlsZVdhdnkgPyBtX3dhdnlP
ZmZzZXQgOiAwOworICAgICAgICAgICAgZmxvYXQgd2F2eU9mZnNldCA9IG1fc3R5bGVzLm92ZXJs
aW5lU3R5bGUgPT0gVGV4dERlY29yYXRpb25TdHlsZVdhdnkgPyBtX3dhdnlPZmZzZXQgOiAwOwog
ICAgICAgICAgICAgRmxvYXRQb2ludCBzdGFydCA9IGxvY2FsT3JpZ2luIC0gRmxvYXRTaXplKDAs
IHdhdnlPZmZzZXQpOwogICAgICAgICAgICAgRmxvYXRQb2ludCBlbmQgPSBsb2NhbE9yaWdpbiAr
IEZsb2F0U2l6ZShtX3dpZHRoLCAtd2F2eU9mZnNldCk7CiAgICAgICAgICAgICBwYWludERlY29y
YXRpb24oVGV4dERlY29yYXRpb25PdmVybGluZSwgbV9zdHlsZXMub3ZlcmxpbmVTdHlsZSwgbV9z
dHlsZXMub3ZlcmxpbmVDb2xvciwgc3RhcnQsIGVuZCwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dERlY29yYXRpb25QYWludGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dERlY29yYXRpb25QYWludGVyLmgKaW5kZXggNmUyY2E4ZDU0ODBjZWI3
ZTNjY2MwYjFmN2I2Y2YxMzdjYzU3NTg3Zi4uNDQ4M2FlMzIxYWU0MzNkY2ZhZDkxOTZlZjFlZGVj
ZTkxYTJjYWE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHREZWNv
cmF0aW9uUGFpbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0RGVjb3Jh
dGlvblBhaW50ZXIuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEdy
YXBoaWNzQ29udGV4dCYgbV9jb250ZXh0OwogICAgIFRleHREZWNvcmF0aW9uIG1fZGVjb3JhdGlv
bjsKLSAgICBpbnQgbV93YXZ5T2Zmc2V0IHsgMCB9OworICAgIGZsb2F0IG1fd2F2eU9mZnNldDsK
ICAgICBib29sIG1faXNQcmludGluZyB7IGZhbHNlIH07CiAgICAgZmxvYXQgbV93aWR0aCB7IDAg
fTsKICAgICBmbG9hdCBtX2Jhc2VsaW5lIHsgMCB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>