<?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>25760</bug_id>
          
          <creation_ts>2009-05-13 14:09:00 -0700</creation_ts>
          <short_desc>Font leak in Chromium&apos;s Skia backend.</short_desc>
          <delta_ts>2009-05-15 00:02:43 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Evan Martin">evan</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>agl</cc>
    
    <cc>brettw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>121095</commentid>
    <comment_count>0</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-05-13 14:09:00 -0700</bug_when>
    <thetext>Valgrind found this:
http://code.google.com/p/chromium/issues/detail?id=9475</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121097</commentid>
    <comment_count>1</comment_count>
      <attachid>30285</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-05-13 14:13:14 -0700</bug_when>
    <thetext>Created attachment 30285
fix some stuff

 WebCore/ChangeLog                                  |   11 +++++++++++
 .../platform/graphics/chromium/FontCacheLinux.cpp  |    5 ++---
 2 files changed, 13 insertions(+), 3 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121098</commentid>
    <comment_count>2</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-05-13 14:14:51 -0700</bug_when>
    <thetext>Please note that I don&apos;t really know what I&apos;m doing, so review carefully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121102</commentid>
    <comment_count>3</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-05-13 14:28:16 -0700</bug_when>
    <thetext>I apologize for not quite getting the review process right, but from some offline discussion it appears Brett is the right reviewer.

Brett, agl wrote the code but he&apos;d never seen these getCachedFont* bits.  As our font man, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121117</commentid>
    <comment_count>4</comment_count>
      <attachid>30285</attachid>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2009-05-13 15:24:05 -0700</bug_when>
    <thetext>Comment on attachment 30285
fix some stuff

I believe this is the way it&apos;s supposed to work, it&apos;s what we do on Windows.

&gt; -            FontPlatformData* fpd =
&gt; -                createFontPlatformData(font.fontDescription(), AtomicString((char*) family));
&gt; -            ret = new SimpleFontData(*fpd);
&gt; +            FontPlatformData* fpd = getCachedFontPlatformData(font.fontDescription(), AtomicString((char*) family), false);
&gt; +            ret = getCachedFontData(fpd);

Is it WebKit style to require static_cast?

Brett</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121127</commentid>
    <comment_count>5</comment_count>
      <attachid>30285</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-05-13 15:54:20 -0700</bug_when>
    <thetext>Comment on attachment 30285
fix some stuff

&gt; +2009-05-13  Evan Martin  &lt;evan@chromium.org&gt;
&gt; +
&gt; +        Reviewed by Darin Fisher &lt;darin@chromium.org&gt;.
&gt; +
&gt; +        Fix a font-related leak in Chromium&apos;s Skia backend found by Valgrind.
&gt; +        http://code.google.com/p/chromium/issues/detail?id=9475

Please add a reference to the bugs.webkit.org bug instead.  In that bug you
should/may refer to the chromium bug.


yes, static_cast for the win!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121131</commentid>
    <comment_count>6</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-05-13 16:04:06 -0700</bug_when>
    <thetext>static_cast where?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121134</commentid>
    <comment_count>7</comment_count>
      <attachid>30294</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-05-13 16:13:47 -0700</bug_when>
    <thetext>Created attachment 30294
fix

 WebCore/ChangeLog                                  |   11 +++++++++++
 .../platform/graphics/chromium/FontCacheLinux.cpp  |    5 ++---
 2 files changed, 13 insertions(+), 3 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121136</commentid>
    <comment_count>8</comment_count>
      <attachid>30294</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-13 16:25:01 -0700</bug_when>
    <thetext>Comment on attachment 30294
fix

WebKit style guidelines:
&quot;Use full words, except in the rare case where an abbreviation would be more canonical and easier to understand.&quot;

I would re-write this block:
+            FontPlatformData* fpd = getCachedFontPlatformData(font.fontDescription(), AtomicString(reinterpret_cast&lt;char*&gt;(family)), false);
+            ret = getCachedFontData(fpd);

as:

AtomicString fontFamily(reinterpret_cast&lt;char*&gt;(family));
ret = getCachedFontData(getCachedFontPlatformData(font.fontDescription(), fontFamily), false)

or as platformData =

Otherwise looks fine.  I can fix it an land for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121140</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-13 16:30:01 -0700</bug_when>
    <thetext>review collision it would appear.  Stupid bugzilla.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121148</commentid>
    <comment_count>10</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-05-13 16:42:28 -0700</bug_when>
    <thetext>Please feel free to munge at will.  (In my defense, note that both the C-style cast and the &quot;ret&quot; were there before my change...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121448</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-15 00:02:43 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/platform/graphics/chromium/FontCacheLinux.cpp
Committed r43756</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30285</attachid>
            <date>2009-05-13 14:13:14 -0700</date>
            <delta_ts>2009-05-13 16:24:35 -0700</delta_ts>
            <desc>fix some stuff</desc>
            <filename>fix-some-stuff.patch</filename>
            <type>text/plain</type>
            <size>1593</size>
            <attacher name="Evan Martin">evan</attacher>
            
              <data encoding="base64">MTYzYWZjNTA0YzdhNTEzNjczODA5MDY3OThlMTczNWVlNzNjZjcyNwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MzFlOTAzLi5mNTMwNDhm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDA5LTA1LTEzICBFdmFuIE1hcnRpbiAgPGV2YW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlciA8ZGFyaW5AY2hyb21pdW0u
b3JnPi4KKworICAgICAgICBGaXggYSBmb250LXJlbGF0ZWQgbGVhayBpbiBDaHJvbWl1bSdzIFNr
aWEgYmFja2VuZCBmb3VuZCBieSBWYWxncmluZC4KKyAgICAgICAgaHR0cDovL2NvZGUuZ29vZ2xl
LmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTQ3NQorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hlTGludXguY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENhY2hlOjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMpOgorICAgICAgICBVc2UgY2Fj
aGVzIGluc3RlYWQgb2YgIm5ldyIgb24gZXZlcnkgY2FsbC4KKwogMjAwOS0wNS0xMyAgRGF2aWQg
SHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtp
biBhbmQgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ZvbnRDYWNoZUxpbnV4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udENhY2hlTGludXguY3BwCmluZGV4IDQxODJkNDcuLmRiMGM4NWUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hlTGludXgu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hlTGlu
dXguY3BwCkBAIC03OSw5ICs3OSw4IEBAIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBGb250Q2FjaGU6
OmdldEZvbnREYXRhRm9yQ2hhcmFjdGVycyhjb25zdCBGb250JiBmb250LAogICAgIGlmIChtYXRj
aCkgewogICAgICAgICBGY0NoYXI4KiBmYW1pbHk7CiAgICAgICAgIGlmIChGY1BhdHRlcm5HZXRT
dHJpbmcobWF0Y2gsIEZDX0ZBTUlMWSwgMCwgJmZhbWlseSkgPT0gRmNSZXN1bHRNYXRjaCkgewot
ICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSogZnBkID0KLSAgICAgICAgICAgICAgICBjcmVh
dGVGb250UGxhdGZvcm1EYXRhKGZvbnQuZm9udERlc2NyaXB0aW9uKCksIEF0b21pY1N0cmluZygo
Y2hhciopIGZhbWlseSkpOwotICAgICAgICAgICAgcmV0ID0gbmV3IFNpbXBsZUZvbnREYXRhKCpm
cGQpOworICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSogZnBkID0gZ2V0Q2FjaGVkRm9udFBs
YXRmb3JtRGF0YShmb250LmZvbnREZXNjcmlwdGlvbigpLCBBdG9taWNTdHJpbmcoKGNoYXIqKSBm
YW1pbHkpLCBmYWxzZSk7CisgICAgICAgICAgICByZXQgPSBnZXRDYWNoZWRGb250RGF0YShmcGQp
OwogICAgICAgICB9CiAgICAgICAgIEZjUGF0dGVybkRlc3Ryb3kobWF0Y2gpOwogICAgIH0K
</data>
<flag name="review"
          id="15240"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30294</attachid>
            <date>2009-05-13 16:13:47 -0700</date>
            <delta_ts>2009-05-13 16:24:53 -0700</delta_ts>
            <desc>fix</desc>
            <filename>fix.patch</filename>
            <type>text/plain</type>
            <size>1581</size>
            <attacher name="Evan Martin">evan</attacher>
            
              <data encoding="base64">ZTE2ZDQ3NzliMmQ0NTcwNzdmMGVmNzhiMjdlZmMwYzQxYTk3NjY1MwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MzFlOTAzLi5mYTFjNjhk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDA5LTA1LTEzICBFdmFuIE1hcnRpbiAgPGV2YW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCBhIGZvbnQtcmVsYXRlZCBsZWFrIGluIENocm9taXVtJ3MgU2tpYSBiYWNrZW5kIGZvdW5kIGJ5
IFZhbGdyaW5kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjU3NjAKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNo
ZUxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JD
aGFyYWN0ZXJzKToKKyAgICAgICAgVXNlIGNhY2hlcyBpbnN0ZWFkIG9mICJuZXciIG9uIGV2ZXJ5
IGNhbGwuCisKIDIwMDktMDUtMTMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEJldGggRGFraW4gYW5kIERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2FjaGVMaW51eC5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNoZUxpbnV4LmNwcApp
bmRleCA0MTgyZDQ3Li4yZWE0NThmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ZvbnRDYWNoZUxpbnV4LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNoZUxpbnV4LmNwcApAQCAtNzksOSArNzksOCBAQCBjb25z
dCBTaW1wbGVGb250RGF0YSogRm9udENhY2hlOjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMoY29u
c3QgRm9udCYgZm9udCwKICAgICBpZiAobWF0Y2gpIHsKICAgICAgICAgRmNDaGFyOCogZmFtaWx5
OwogICAgICAgICBpZiAoRmNQYXR0ZXJuR2V0U3RyaW5nKG1hdGNoLCBGQ19GQU1JTFksIDAsICZm
YW1pbHkpID09IEZjUmVzdWx0TWF0Y2gpIHsKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEq
IGZwZCA9Ci0gICAgICAgICAgICAgICAgY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250LmZvbnRE
ZXNjcmlwdGlvbigpLCBBdG9taWNTdHJpbmcoKGNoYXIqKSBmYW1pbHkpKTsKLSAgICAgICAgICAg
IHJldCA9IG5ldyBTaW1wbGVGb250RGF0YSgqZnBkKTsKKyAgICAgICAgICAgIEZvbnRQbGF0Zm9y
bURhdGEqIGZwZCA9IGdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9udC5mb250RGVzY3JpcHRp
b24oKSwgQXRvbWljU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGZhbWlseSkpLCBmYWxz
ZSk7CisgICAgICAgICAgICByZXQgPSBnZXRDYWNoZWRGb250RGF0YShmcGQpOwogICAgICAgICB9
CiAgICAgICAgIEZjUGF0dGVybkRlc3Ryb3kobWF0Y2gpOwogICAgIH0K
</data>
<flag name="review"
          id="15245"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>