<?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>126155</bug_id>
          
          <creation_ts>2013-12-23 03:31:00 -0800</creation_ts>
          <short_desc>ImageBufferBackingStoreCache should use DeferrableOneShotTimer</short_desc>
          <delta_ts>2014-01-02 16:07: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>Platform</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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>962433</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-23 03:31:00 -0800</bug_when>
    <thetext>Right now, it uses plain old Timer, and reschedules it in every deallocate(), which can be very (very!) expensive (I&apos;m seeing it at about 8% of main thread run time in my simple test case). That&apos;s why we have DeferrableOneShotTimer.

I have a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962436</commentid>
    <comment_count>1</comment_count>
      <attachid>219905</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-23 03:46:42 -0800</bug_when>
    <thetext>Created attachment 219905
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962437</commentid>
    <comment_count>2</comment_count>
      <attachid>219905</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-23 03:47:17 -0800</bug_when>
    <thetext>Comment on attachment 219905
patch

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

&gt; Source/WebCore/platform/graphics/cg/ImageBufferBackingStoreCache.cpp:78
&gt; +    {
&gt; +    }

unindented obviously</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963793</commentid>
    <comment_count>3</comment_count>
      <attachid>219905</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-01-02 11:17:41 -0800</bug_when>
    <thetext>Comment on attachment 219905
patch

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

&gt; Source/WebCore/platform/graphics/cg/ImageBufferBackingStoreCache.cpp:32
&gt; +static const double purgeInterval = 5;

shouldn&apos;t this be kPurgeInterval?

&gt; Source/WebCore/platform/graphics/cg/ImageBufferBackingStoreCache.cpp:74
&gt; +ImageBufferBackingStoreCache::ImageBufferBackingStoreCache()

Why did you move this into public?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963797</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-02 11:22:48 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 219905 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=219905&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cg/ImageBufferBackingStoreCache.cpp:32
&gt; &gt; +static const double purgeInterval = 5;
&gt; 
&gt; shouldn&apos;t this be kPurgeInterval?

I think you&apos;ll find that that&apos;s generally not the case, nor do I see anything in the style guide.

&gt; &gt; Source/WebCore/platform/graphics/cg/ImageBufferBackingStoreCache.cpp:74
&gt; &gt; +ImageBufferBackingStoreCache::ImageBufferBackingStoreCache()
&gt; 
&gt; Why did you move this into public?

I didn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963945</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-02 16:07:13 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/161239</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219905</attachid>
            <date>2013-12-23 03:46:42 -0800</date>
            <delta_ts>2014-01-02 11:17:41 -0800</delta_ts>
            <desc>patch</desc>
            <filename>dost.diff</filename>
            <type>text/plain</type>
            <size>4498</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxM2U0NGNjLi5mOWVjMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTMtMTItMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZSBzaG91bGQgdXNlIERlZmVycmFi
bGVPbmVTaG90VGltZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNjE1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNpbmNlIEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUncyBwdXJnZSB0aW1lciBp
cyBwdXNoZWQgb3V0IGV2ZXJ5IHRpbWUKKyAgICAgICAgYSBiYWNraW5nIHN0b3JlIGlzIGRlYWxs
b2NhdGVkLCB3ZSBjYW4gZWFzaWx5IHdhc3RlIGEgbG90IG9mIHRpbWUgcmVzY2hlZHVsaW5nCisg
ICAgICAgIHRoZSB0aW1lci4gU2luY2UgaXQncyBhIGNhY2hlIHB1cmdlIHRpbWVyIGFuZCBkb2Vz
bid0IG5lZWQgdGhhdCBraW5kIG9mIHByZWNpc2lvbiwKKyAgICAgICAgYWRvcHQgRGVmZXJyYWJs
ZU9uZVNob3RUaW1lciwgd2hpY2ggaXMgbXVjaCBtb3JlIHBlcmZvcm1hbnQgd2hlbiBkZWZlcnJl
ZCBmcmVxdWVudGx5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJCYWNraW5nU3RvcmVDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJh
Y2tpbmdTdG9yZUNhY2hlOjpJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGU6OnRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZTo6c2NoZWR1bGVQdXJn
ZVRpbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckJhY2tp
bmdTdG9yZUNhY2hlLmg6CisKIDIwMTMtMTItMjAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNYWNdIFNvZnQtbGluayBXZWJDb250ZW50QW5hbHlzaXMuZnJhbWV3
b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUuY3BwCmluZGV4IGQ1ZmQ4ODUu
LmJiYmVhYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUuY3BwCkBAIC0y
OSw2ICsyOSw4IEBACiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKICNp
bmNsdWRlIDxJT1N1cmZhY2UvSU9TdXJmYWNlLmg+CiAKK3N0YXRpYyBjb25zdCBkb3VibGUgcHVy
Z2VJbnRlcnZhbCA9IDU7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFJldGFpblB0
cjxJT1N1cmZhY2VSZWY+IGNyZWF0ZUlPU3VyZmFjZShjb25zdCBJbnRTaXplJiBzaXplKQpAQCAt
NjksNiArNzEsMTIgQEAgc3RhdGljIFJldGFpblB0cjxJT1N1cmZhY2VSZWY+IGNyZWF0ZUlPU3Vy
ZmFjZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIHJldHVybiBhZG9wdENGKElPU3VyZmFjZUNy
ZWF0ZShkaWN0LmdldCgpKSk7CiB9CiAKK0ltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGU6Oklt
YWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUoKQorICAgIDogbV9wdXJnZVRpbWVyKHRoaXMsICZJ
bWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlOjp0aW1lckZpcmVkLCBwdXJnZUludGVydmFsKQor
ICAgICwgbV9waXhlbHNDYWNoZWQoMCkKKyAgICB7CisgICAgfQorCiBJbWFnZUJ1ZmZlckJhY2tp
bmdTdG9yZUNhY2hlJiBJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlOjpnZXQoKQogewogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZSwgY2FjaGUs
ICgpKTsKQEAgLTIwMCw3ICsyMDgsNyBAQCB2b2lkIEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2Fj
aGU6OmRlYWxsb2NhdGUoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCiAgICAgc2NoZWR1bGVQdXJnZVRp
bWVyKCk7CiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZTo6dGltZXJGaXJl
ZChUaW1lcjxJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlPiopCit2b2lkIEltYWdlQnVmZmVy
QmFja2luZ1N0b3JlQ2FjaGU6OnRpbWVyRmlyZWQoRGVmZXJyYWJsZU9uZVNob3RUaW1lcjxJbWFn
ZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlPiopCiB7CiAgICAgd2hpbGUgKCFtX2NhY2hlZFN1cmZh
Y2VzLmlzRW1wdHkoKSkgewogICAgICAgICBDYWNoZWRTdXJmYWNlTWFwOjppdGVyYXRvciBpdGVy
ID0gbV9jYWNoZWRTdXJmYWNlcy5iZWdpbigpOwpAQCAtMjEwLDExICsyMTgsNyBAQCB2b2lkIElt
YWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGU6OnRpbWVyRmlyZWQoVGltZXI8SW1hZ2VCdWZmZXJC
YWNraW5nU3RvcmVDYWNoZQogCiB2b2lkIEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGU6OnNj
aGVkdWxlUHVyZ2VUaW1lcigpCiB7Ci0gICAgaWYgKG1fcHVyZ2VUaW1lci5pc0FjdGl2ZSgpKQot
ICAgICAgICBtX3B1cmdlVGltZXIuc3RvcCgpOwotCi0gICAgc3RhdGljIGNvbnN0IGRvdWJsZSBw
dXJnZUludGVydmFsID0gNTsKLSAgICBtX3B1cmdlVGltZXIuc3RhcnRPbmVTaG90KHB1cmdlSW50
ZXJ2YWwpOworICAgIG1fcHVyZ2VUaW1lci5yZXN0YXJ0KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQmFja2luZ1N0
b3JlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyQmFja2luZ1N0b3JlQ2FjaGUuaAppbmRleCAyNDVlMjMyLi5iMGIxMDAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckJhY2tpbmdT
dG9yZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZS5oCkBAIC02MywxMSArNjMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkZWFsbG9jYXRlKElPU3VyZmFjZVJlZik7CiAKIHByaXZhdGU6Ci0gICAgSW1hZ2VC
dWZmZXJCYWNraW5nU3RvcmVDYWNoZSgpCi0gICAgICAgIDogbV9wdXJnZVRpbWVyKHRoaXMsICZJ
bWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlOjp0aW1lckZpcmVkKQotICAgICAgICAsIG1fcGl4
ZWxzQ2FjaGVkKDApCi0gICAgewotICAgIH0KKyAgICBJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNh
Y2hlKCk7CiAKICAgICBzdHJ1Y3QgSU9TdXJmYWNlQW5kQ29udGV4dFdpdGhDcmVhdGlvblBhcmFt
cyA6IHB1YmxpYyBJT1N1cmZhY2VBbmRDb250ZXh0LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5v
ZGU8SU9TdXJmYWNlQW5kQ29udGV4dFdpdGhDcmVhdGlvblBhcmFtcz4gewogICAgICAgICBJT1N1
cmZhY2VBbmRDb250ZXh0V2l0aENyZWF0aW9uUGFyYW1zKCkKQEAgLTEwMiwxMCArOTgsMTAgQEAg
cHJpdmF0ZToKICAgICBib29sIHRyeVRha2VGcm9tQ2FjaGUoY29uc3QgSW50U2l6ZSYsIENHQ29s
b3JTcGFjZVJlZiwgYm9vbCBuZWVkRXhhY3RTaXplLCBJT1N1cmZhY2VBbmRDb250ZXh0V2l0aENy
ZWF0aW9uUGFyYW1zJiBvdXRJbmZvKTsKICAgICBib29sIGlzQWNjZXB0YWJsZVN1cmZhY2UoY29u
c3QgSU9TdXJmYWNlQW5kQ29udGV4dFdpdGhDcmVhdGlvblBhcmFtcyYsIGNvbnN0IEludFNpemUm
LCBDR0NvbG9yU3BhY2VSZWYsIGJvb2wgbmVlZEV4YWN0U2l6ZSkgY29uc3Q7CiAKLSAgICB2b2lk
IHRpbWVyRmlyZWQoVGltZXI8SW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZT4qKTsKKyAgICB2
b2lkIHRpbWVyRmlyZWQoRGVmZXJyYWJsZU9uZVNob3RUaW1lcjxJbWFnZUJ1ZmZlckJhY2tpbmdT
dG9yZUNhY2hlPiopOwogICAgIHZvaWQgc2NoZWR1bGVQdXJnZVRpbWVyKCk7CiAKLSAgICBUaW1l
cjxJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlPiBtX3B1cmdlVGltZXI7CisgICAgRGVmZXJy
YWJsZU9uZVNob3RUaW1lcjxJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlPiBtX3B1cmdlVGlt
ZXI7CiAgICAgQWN0aXZlU3VyZmFjZU1hcCBtX2FjdGl2ZVN1cmZhY2VzOwogICAgIENhY2hlZFN1
cmZhY2VNYXAgbV9jYWNoZWRTdXJmYWNlczsKICAgICBpbnQgbV9waXhlbHNDYWNoZWQ7Cg==
</data>
<flag name="review"
          id="243568"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>