<?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>62163</bug_id>
          
          <creation_ts>2011-06-06 15:59:09 -0700</creation_ts>
          <short_desc>[chromium] PlatformContextSkia leaks SkDeviceFactory</short_desc>
          <delta_ts>2011-06-07 13:29:11 -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>Canvas</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alok Priyadarshi">alokp</reporter>
          <assigned_to name="Alok Priyadarshi">alokp</assigned_to>
          <cc>mdelaney7</cc>
    
    <cc>reed</cc>
    
    <cc>senorblanco</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>416085</commentid>
    <comment_count>0</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-06-06 15:59:09 -0700</bug_when>
    <thetext>I found the leak while debugging a crash in PlatformContextSkia::setSharedGraphicsContext3D. Note that the factory created here:
http://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.cpp?rev=86182#L745

is never unref&apos;d.

chromium bug: http://code.google.com/p/chromium/issues/detail?id=84758</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416099</commentid>
    <comment_count>1</comment_count>
      <attachid>96146</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-06-06 16:09:07 -0700</bug_when>
    <thetext>Created attachment 96146
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416437</commentid>
    <comment_count>2</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2011-06-07 04:55:20 -0700</bug_when>
    <thetext>Seems ok, though I think a 1-liner fix could also just be

from
    m_canvas-&gt;setDeviceFactory(factory);
to
    m_canvas-&gt;setDeviceFactory(factory)-&gt;unref();

This matches the skia pattern, and matches the line above for the device.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416503</commentid>
    <comment_count>3</comment_count>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-06-07 07:53:31 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Seems ok, though I think a 1-liner fix could also just be
&gt; 
&gt; from
&gt;     m_canvas-&gt;setDeviceFactory(factory);
&gt; to
&gt;     m_canvas-&gt;setDeviceFactory(factory)-&gt;unref();
&gt; 
&gt; This matches the skia pattern, and matches the line above for the device.

Either way is fine with me. I used auto-ptr because there was a bunch of TODOs in the code to that effect and also the skia pattern does not work in case of GrTexture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416720</commentid>
    <comment_count>4</comment_count>
      <attachid>96280</attachid>
    <who name="Alok Priyadarshi">alokp</who>
    <bug_when>2011-06-07 12:18:30 -0700</bug_when>
    <thetext>Created attachment 96280
proposed patch

Went with the one-line fix. This is probably not the right time make unnecessary changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416727</commentid>
    <comment_count>5</comment_count>
      <attachid>96280</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-06-07 12:20:50 -0700</bug_when>
    <thetext>Comment on attachment 96280
proposed patch

Looks good.  R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416756</commentid>
    <comment_count>6</comment_count>
      <attachid>96280</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-07 13:29:06 -0700</bug_when>
    <thetext>Comment on attachment 96280
proposed patch

Clearing flags on attachment: 96280

Committed r88258: &lt;http://trac.webkit.org/changeset/88258&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416757</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-07 13:29:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96146</attachid>
            <date>2011-06-06 16:09:07 -0700</date>
            <delta_ts>2011-06-07 12:18:30 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>leak.patch</filename>
            <type>text/plain</type>
            <size>2819</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MTk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYtMDYgIEFsb2sgUHJp
eWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBQbGF0Zm9ybUNvbnRleHRTa2lhIGxl
YWtzIFNrRGV2aWNlRmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjIxNjMKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpzZXRTaGFyZWRHcmFwaGljc0Nv
bnRleHQzRCk6CisKIDIwMTEtMDYtMDYgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29u
dGV4dFNraWEuY3BwCShyZXZpc2lvbiA4ODE4OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyMyw2ICs3MjMsNyBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OnNldFNoYXJlZEdyYXBo
CiAgICAgbV9hY2NlbGVyYXRpb25Nb2RlID0gTm9BY2NlbGVyYXRpb247CiAjaWYgRU5BQkxFKEFD
Q0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBpZiAoY29udGV4dCAmJiBkcmF3aW5nQnVmZmVyKSB7
CisgICAgICAgIEFTU0VSVChzaXplID09IGRyYXdpbmdCdWZmZXItPnNpemUoKSk7CiAgICAgICAg
IG1fZ3B1Q2FudmFzID0gYWRvcHRQdHIobmV3IEdyYXBoaWNzQ29udGV4dEdQVShjb250ZXh0LCBk
cmF3aW5nQnVmZmVyLCBzaXplKSk7CiAgICAgICAgIG1fdXBsb2FkVGV4dHVyZS5jbGVhcigpOwog
ICAgICAgICBkcmF3aW5nQnVmZmVyLT5zZXRXaWxsUHVibGlzaENhbGxiYWNrKFdpbGxQdWJsaXNo
Q2FsbGJhY2tJbXBsOjpjcmVhdGUodGhpcykpOwpAQCAtNzQwLDE3ICs3NDEsMTIgQEAgdm9pZCBQ
bGF0Zm9ybUNvbnRleHRTa2lhOjpzZXRTaGFyZWRHcmFwaAogCiAgICAgICAgICAgICBHclBsYXRm
b3JtU3VyZmFjZURlc2MgZHJhd0J1ZkRlc2M7CiAgICAgICAgICAgICBkcmF3aW5nQnVmZmVyLT5n
ZXRHclBsYXRmb3JtU3VyZmFjZURlc2MoJmRyYXdCdWZEZXNjKTsKLSAgICAgICAgICAgIEdyVGV4
dHVyZSogZHJhd0J1ZlRleCA9IHN0YXRpY19jYXN0PEdyVGV4dHVyZSo+KGdyLT5jcmVhdGVQbGF0
Zm9ybVN1cmZhY2UoZHJhd0J1ZkRlc2MpKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCB1c2UgYSBzbWFydCBwb2ludGVyLgotICAgICAgICAgICAgU2tEZXZpY2VGYWN0b3J5KiBm
YWN0b3J5ID0gbmV3IFNrR3B1RGV2aWNlRmFjdG9yeShnciwgZHJhd0J1ZlRleCk7Ci0gICAgICAg
ICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIGEgc21hcnQgcG9pbnRlci4KLSAgICAgICAg
ICAgIGRyYXdCdWZUZXgtPnVucmVmKCk7CisgICAgICAgICAgICBTa0F1dG9UVW5yZWY8R3JUZXh0
dXJlPiBkcmF3QnVmVGV4KHN0YXRpY19jYXN0PEdyVGV4dHVyZSo+KGdyLT5jcmVhdGVQbGF0Zm9y
bVN1cmZhY2UoZHJhd0J1ZkRlc2MpKSk7CisgICAgICAgICAgICBTa0F1dG9UVW5yZWY8U2tEZXZp
Y2VGYWN0b3J5PiBmYWN0b3J5KG5ldyBTa0dwdURldmljZUZhY3RvcnkoZ3IsIGRyYXdCdWZUZXgu
Z2V0KCkpKTsKKyAgICAgICAgICAgIFNrQXV0b1RVbnJlZjxTa0RldmljZT4gZGV2aWNlKGZhY3Rv
cnkuZ2V0KCktPm5ld0RldmljZSgwLCBTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcsIHNpemUu
d2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgZmFsc2UsIGZhbHNlKSk7CiAKLSAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgYSBzbWFydCBwb2ludGVyLgotICAgICAgICAgICAgU2tE
ZXZpY2UqIGRldmljZSA9IGZhY3RvcnktPm5ld0RldmljZShtX2NhbnZhcywgU2tCaXRtYXA6OmtB
UkdCXzg4ODhfQ29uZmlnLCBkcmF3aW5nQnVmZmVyLT5zaXplKCkud2lkdGgoKSwgZHJhd2luZ0J1
ZmZlci0+c2l6ZSgpLmhlaWdodCgpLCBmYWxzZSwgZmFsc2UpOwotICAgICAgICAgICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIuCi0gICAgICAgICAgICBtX2NhbnZh
cy0+c2V0RGV2aWNlKGRldmljZSktPnVucmVmKCk7Ci0gICAgICAgICAgICBtX2NhbnZhcy0+c2V0
RGV2aWNlRmFjdG9yeShmYWN0b3J5KTsKKyAgICAgICAgICAgIG1fY2FudmFzLT5zZXREZXZpY2Uo
ZGV2aWNlLmdldCgpKTsKKyAgICAgICAgICAgIG1fY2FudmFzLT5zZXREZXZpY2VGYWN0b3J5KGZh
Y3RvcnkuZ2V0KCkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1fYWNjZWxlcmF0aW9u
TW9kZSA9IEdQVTsKICAgICB9IGVsc2Ugewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96280</attachid>
            <date>2011-06-07 12:18:30 -0700</date>
            <delta_ts>2011-06-07 13:29:06 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>leak.patch</filename>
            <type>text/plain</type>
            <size>1498</size>
            <attacher name="Alok Priyadarshi">alokp</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MjUyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYtMDcgIEFsb2sgUHJp
eWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBQbGF0Zm9ybUNvbnRleHRTa2lhIGxl
YWtzIFNrRGV2aWNlRmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjIxNjMKKworICAgICAgICBWYWxncmluZCB0ZXN0cyBzaG91bGQgaGF2ZSBj
YXVnaHQgdGhpcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1D
b250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpz
ZXRTaGFyZWRHcmFwaGljc0NvbnRleHQzRCk6CisKIDIwMTEtMDYtMDcgIEVtaWwgQSBFa2x1bmQg
IDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRl
eHRTa2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCShyZXZpc2lvbiA4ODE4OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc1MCw3ICs3NTAsNyBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dFNr
aWE6OnNldFNoYXJlZEdyYXBoCiAgICAgICAgICAgICBTa0RldmljZSogZGV2aWNlID0gZmFjdG9y
eS0+bmV3RGV2aWNlKG1fY2FudmFzLCBTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcsIGRyYXdp
bmdCdWZmZXItPnNpemUoKS53aWR0aCgpLCBkcmF3aW5nQnVmZmVyLT5zaXplKCkuaGVpZ2h0KCks
IGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIGEg
c21hcnQgcG9pbnRlci4KICAgICAgICAgICAgIG1fY2FudmFzLT5zZXREZXZpY2UoZGV2aWNlKS0+
dW5yZWYoKTsKLSAgICAgICAgICAgIG1fY2FudmFzLT5zZXREZXZpY2VGYWN0b3J5KGZhY3Rvcnkp
OworICAgICAgICAgICAgbV9jYW52YXMtPnNldERldmljZUZhY3RvcnkoZmFjdG9yeSktPnVucmVm
KCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9hY2NlbGVyYXRpb25Nb2RlID0gR1BV
OwogICAgIH0gZWxzZSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>