<?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>87824</bug_id>
          
          <creation_ts>2012-05-29 22:54:34 -0700</creation_ts>
          <short_desc>Factor DeferrableOneShotTimer out of GraphicsContextCG/GeneratorGeneratedImage</short_desc>
          <delta_ts>2012-06-04 10:05:47 -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>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>darin</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>636878</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-05-29 22:54:34 -0700</bug_when>
    <thetext>I copied and pasted some code from GraphicsContextCG into GeneratorGeneratedImage, and I shouldn&apos;t have. We should move this code to somewhere more generic so that it can be reused, especially as it&apos;s particularly useful for clearing caches!

DeferrableOneShotTimer is a timer which takes a class+method to call (as Timer does), and a delay. It exposes restart(), stop(), and isActive(), and none of the rest of the TimerBase interface. On restart(), the timer is started with the given delay, unless it&apos;s already running, in which case a flag is set to automatically restart the timer when it fires instead of calling the given method. This provides a low-overhead way to implement a deferrable timer.

This will be used to clear GraphicsContextCG&apos;s subimage cache and GeneratorGeneratedImage&apos;s generated image cache.

I have a patch. I&apos;m also open to better names and/or moving it into its own header if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636913</commentid>
    <comment_count>1</comment_count>
      <attachid>144724</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-05-29 23:31:55 -0700</bug_when>
    <thetext>Created attachment 144724
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637285</commentid>
    <comment_count>2</comment_count>
      <attachid>144724</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-05-30 09:02:33 -0700</bug_when>
    <thetext>Comment on attachment 144724
patch

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

Nice.

&gt; Source/WebCore/platform/Timer.h:127
&gt; +        // again, which might result in rescheduling the system timer and that

s/and that/which

&gt; Source/WebCore/platform/Timer.h:155
&gt; +    bool m_shouldRestartWhenTimerFires;
&gt; +    double m_delay;

Putting the bool last might get you better packing and a smaller object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637472</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-05-30 11:28:53 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/118942</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637561</commentid>
    <comment_count>4</comment_count>
      <attachid>144724</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-30 12:48:46 -0700</bug_when>
    <thetext>Comment on attachment 144724
patch

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

&gt;&gt; Source/WebCore/platform/Timer.h:127
&gt;&gt; +        // again, which might result in rescheduling the system timer and that
&gt; 
&gt; s/and that/which

I don’t agree. That goes against my elementary school training about the use of which vs. that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144724</attachid>
            <date>2012-05-29 23:31:55 -0700</date>
            <delta_ts>2012-05-30 12:48:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>deferrabletimer.diff</filename>
            <type>text/plain</type>
            <size>8218</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NzZiMWE1Li4xN2EzZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTItMDUtMjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgRmFjdG9yIERlZmVycmFibGVPbmVTaG90VGltZXIgb3V0IG9mIEdyYXBoaWNzQ29u
dGV4dENHL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzgyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERlZmVycmFibGVPbmVTaG90VGltZXIgaXMgYSB0aW1lciB3
aGljaCB0YWtlcyBhIGNsYXNzIGFuZCBtZXRob2QgdG8gY2FsbCAoYXMgVGltZXIgZG9lcyksCisg
ICAgICAgIGFuZCBhIGRlbGF5LiBJdCBleHBvc2VzIHJlc3RhcnQoKSwgc3RvcCgpLCBhbmQgaXNB
Y3RpdmUoKSwgYW5kIG5vbmUgb2YgdGhlIHJlc3Qgb2YKKyAgICAgICAgdGhlIFRpbWVyQmFzZSBp
bnRlcmZhY2UuIE9uIHJlc3RhcnQoKSwgdGhlIHRpbWVyIGlzIHN0YXJ0ZWQgd2l0aCB0aGUgZ2l2
ZW4gZGVsYXksCisgICAgICAgIHVubGVzcyBpdCdzIGFscmVhZHkgcnVubmluZywgaW4gd2hpY2gg
Y2FzZSBhIGZsYWcgaXMgc2V0IHRvIGF1dG9tYXRpY2FsbHkgcmVzdGFydAorICAgICAgICB0aGUg
dGltZXIgd2hlbiBpdCBmaXJlcyBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlIGdpdmVuIG1ldGhvZC4g
VGhpcyBwcm92aWRlcyBhCisgICAgICAgIGxvdy1vdmVyaGVhZCB3YXkgdG8gaW1wbGVtZW50IGEg
ZGVmZXJyYWJsZSB0aW1lci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yaW5nLgor
CisgICAgICAgICogcGxhdGZvcm0vVGltZXIuaDoKKyAgICAgICAgKERlZmVycmFibGVPbmVTaG90
VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcjo6RGVmZXJy
YWJsZU9uZVNob3RUaW1lcik6IE5ldyBjbGFzcy4KKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmFi
bGVPbmVTaG90VGltZXI6OnJlc3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RGVmZXJyYWJsZU9u
ZVNob3RUaW1lcjo6ZmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRv
ckdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRvckdlbmVyYXRl
ZEltYWdlOjppbnZhbGlkYXRlQ2FjaGVUaW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6R2Vu
ZXJhdG9yR2VuZXJhdGVkSW1hZ2U6OkdlbmVyYXRvckdlbmVyYXRlZEltYWdlKTogTWFrZSB1c2Ug
b2YgRGVmZXJyYWJsZU9uZVNob3RUaW1lci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJpbWFnZUNhY2hl
V2l0aFRpbWVyOjpTdWJpbWFnZUNhY2hlV2l0aFRpbWVyKTogTWFrZSB1c2Ugb2YgRGVmZXJyYWJs
ZU9uZVNob3RUaW1lci4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmltYWdlQ2FjaGVXaXRoVGltZXI6
OmludmFsaWRhdGVDYWNoZVRpbWVyRmlyZWQpOgorCiAyMDEyLTA1LTI5ICBNT1JJVEEgSGFqaW1l
ICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFtTaGFkb3cgRE9NXSBOb2RlIGRpc3Ry
aWJ1dGlvbiBzaG91bGQgYmUgb3J0aG9nb25hbCBmcm9tIG5vZGUgYXR0YWNobWVudApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RpbWVyLmgKaW5kZXggNjM3YmJjMC4uYjE4M2ZjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aW1lci5oCkBAIC0xMDksNiArMTA5LDUyIEBAIGlubGluZSBib29sIFRpbWVyQmFzZTo6aXNBY3Rp
dmUoKSBjb25zdAogICAgIHJldHVybiBtX25leHRGaXJlVGltZTsKIH0KIAordGVtcGxhdGUgPHR5
cGVuYW1lIFRpbWVyRmlyZWRDbGFzcz4gY2xhc3MgRGVmZXJyYWJsZU9uZVNob3RUaW1lciA6IHBy
aXZhdGUgVGltZXJCYXNlIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRD
bGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbikoRGVmZXJyYWJsZU9uZVNob3RUaW1lciopOworCisg
ICAgRGVmZXJyYWJsZU9uZVNob3RUaW1lcihUaW1lckZpcmVkQ2xhc3MqIG8sIFRpbWVyRmlyZWRG
dW5jdGlvbiBmLCBkb3VibGUgZGVsYXkpCisgICAgICAgIDogbV9vYmplY3QobykKKyAgICAgICAg
LCBtX2Z1bmN0aW9uKGYpCisgICAgICAgICwgbV9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmlyZXMo
ZmFsc2UpCisgICAgICAgICwgbV9kZWxheShkZWxheSkKKyAgICB7CisgICAgfQorCisgICAgdm9p
ZCByZXN0YXJ0KCkKKyAgICB7CisgICAgICAgIC8vIFNldHRpbmcgdGhpcyBib29sZWFuIGlzIG11
Y2ggbW9yZSBlZmZpY2llbnQgdGhhbiBjYWxsaW5nIHN0YXJ0T25lU2hvdAorICAgICAgICAvLyBh
Z2Fpbiwgd2hpY2ggbWlnaHQgcmVzdWx0IGluIHJlc2NoZWR1bGluZyB0aGUgc3lzdGVtIHRpbWVy
IGFuZCB0aGF0CisgICAgICAgIC8vIGNhbiBiZSBxdWl0ZSBleHBlbnNpdmUuCisKKyAgICAgICAg
aWYgKGlzQWN0aXZlKCkpIHsKKyAgICAgICAgICAgIG1fc2hvdWxkUmVzdGFydFdoZW5UaW1lckZp
cmVzID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdGFy
dE9uZVNob3QobV9kZWxheSk7CisgICAgfQorCisgICAgdXNpbmcgVGltZXJCYXNlOjpzdG9wOwor
ICAgIHVzaW5nIFRpbWVyQmFzZTo6aXNBY3RpdmU7Citwcml2YXRlOgorICAgIHZpcnR1YWwgdm9p
ZCBmaXJlZCgpCisgICAgeworICAgICAgICBpZiAobV9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmly
ZXMpIHsKKyAgICAgICAgICAgIG1fc2hvdWxkUmVzdGFydFdoZW5UaW1lckZpcmVzID0gZmFsc2U7
CisgICAgICAgICAgICBzdGFydE9uZVNob3QobV9kZWxheSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICAobV9vYmplY3QtPiptX2Z1bmN0aW9uKSh0aGlzKTsKKyAg
ICB9CisKKyAgICBUaW1lckZpcmVkQ2xhc3MqIG1fb2JqZWN0OworICAgIFRpbWVyRmlyZWRGdW5j
dGlvbiBtX2Z1bmN0aW9uOworCisgICAgYm9vbCBtX3Nob3VsZFJlc3RhcnRXaGVuVGltZXJGaXJl
czsKKyAgICBkb3VibGUgbV9kZWxheTsKK307CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJ
bWFnZS5jcHAKaW5kZXggZGQ3MDZiMC4uZjMzN2RkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNw
cApAQCAtOTAsNCArOTAsMTAgQEAgdm9pZCBHZW5lcmF0ZWRJbWFnZTo6Y29tcHV0ZUludHJpbnNp
Y0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJgogICAgIGludHJpbnNp
Y1JhdGlvID0gRmxvYXRTaXplKCk7CiB9CiAKK3ZvaWQgR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6
OmludmFsaWRhdGVDYWNoZVRpbWVyRmlyZWQoRGVmZXJyYWJsZU9uZVNob3RUaW1lcjxHZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZT4qKQoreworICAgIG1fY2FjaGVkSW1hZ2VCdWZmZXIuY2xlYXIoKTsK
KyAgICBtX2NhY2hlZEFkanVzdGVkU2l6ZSA9IEludFNpemUoKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvckdlbmVyYXRl
ZEltYWdlLmgKaW5kZXggZjNiOTU5NS4uNTVhYzM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oCkBA
IC01OCw0OSArNTgsMTkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBD
b21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CiAKKyAgICB2b2lk
IGludmFsaWRhdGVDYWNoZVRpbWVyRmlyZWQoRGVmZXJyYWJsZU9uZVNob3RUaW1lcjxHZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZT4qKTsKKwogICAgIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlKFBhc3NS
ZWZQdHI8R2VuZXJhdG9yPiBnZW5lcmF0b3IsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAg
IDogbV9nZW5lcmF0b3IoZ2VuZXJhdG9yKQotICAgICAgICAsIG1fY2FjaGVUaW1lcih0aGlzKQor
ICAgICAgICAsIG1fY2FjaGVUaW1lcih0aGlzLCAmR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2U6Omlu
dmFsaWRhdGVDYWNoZVRpbWVyRmlyZWQsIGdlbmVyYXRlZEltYWdlQ2FjaGVDbGVhckRlbGF5KQog
ICAgIHsKICAgICAgICAgbV9zaXplID0gc2l6ZTsKICAgICB9Ci0gICAgCi0gICAgY2xhc3MgR2Vu
ZXJhdGVkSW1hZ2VDYWNoZVRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7Ci0gICAgcHVibGljOgot
ICAgICAgICBHZW5lcmF0ZWRJbWFnZUNhY2hlVGltZXIoR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2Ug
KiBwYXJlbnQpCi0gICAgICAgIDogbV9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmlyZXMoZmFsc2Up
Ci0gICAgICAgICwgbV9wYXJlbnQocGFyZW50KSB7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQg
cmVzdGFydCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChpc0FjdGl2ZSgpKSB7Ci0gICAg
ICAgICAgICAgICAgbV9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmlyZXMgPSB0cnVlOwotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0YXJ0T25lU2hv
dChnZW5lcmF0ZWRJbWFnZUNhY2hlQ2xlYXJEZWxheSk7Ci0gICAgICAgIH07Ci0gICAgcHJpdmF0
ZToKLSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgT1ZFUlJJREUKLSAgICAgICAgewotICAg
ICAgICAgICAgaWYgKG1fc2hvdWxkUmVzdGFydFdoZW5UaW1lckZpcmVzKSB7Ci0gICAgICAgICAg
ICAgICAgbV9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmlyZXMgPSBmYWxzZTsKLSAgICAgICAgICAg
ICAgICBzdGFydE9uZVNob3QoZ2VuZXJhdGVkSW1hZ2VDYWNoZUNsZWFyRGVsYXkpOwotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgaWYgKG1fcGFyZW50KSB7Ci0gICAgICAgICAgICAgICAgbV9wYXJlbnQtPm1fY2FjaGVkSW1h
Z2VCdWZmZXIuY2xlYXIoKTsKLSAgICAgICAgICAgICAgICBtX3BhcmVudC0+bV9jYWNoZWRBZGp1
c3RlZFNpemUgPSBJbnRTaXplKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAg
IGJvb2wgbV9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmlyZXM7Ci0gICAgICAgIEdlbmVyYXRvckdl
bmVyYXRlZEltYWdlKiBtX3BhcmVudDsKLSAgICB9OwogCiAgICAgUmVmUHRyPEdlbmVyYXRvcj4g
bV9nZW5lcmF0b3I7CiAKICAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IG1fY2FjaGVkSW1hZ2VCdWZm
ZXI7Ci0gICAgR2VuZXJhdGVkSW1hZ2VDYWNoZVRpbWVyIG1fY2FjaGVUaW1lcjsKKyAgICBEZWZl
cnJhYmxlT25lU2hvdFRpbWVyPEdlbmVyYXRvckdlbmVyYXRlZEltYWdlPiBtX2NhY2hlVGltZXI7
CiAgICAgSW50U2l6ZSBtX2NhY2hlZEFkanVzdGVkU2l6ZTsKICAgICB1bnNpZ25lZCBtX2NhY2hl
ZEdlbmVyYXRvckhhc2g7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDcwZDU5MGQuLjc0ODk0
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTEzMiwxOCArMTMyLDE2IEBAIHN0cnVjdCBTdWJp
bWFnZUNhY2hlSGFzaCB7CiAKIHR5cGVkZWYgSGFzaFNldDxTdWJpbWFnZUNhY2hlRW50cnksIFN1
YmltYWdlQ2FjaGVIYXNoLCBTdWJpbWFnZUNhY2hlRW50cnlUcmFpdHM+IFN1YmltYWdlQ2FjaGU7
CiAKLWNsYXNzIFN1YmltYWdlQ2FjaGVUaW1lciA6IHByaXZhdGUgVGltZXJCYXNlIHsKLXB1Ymxp
YzoKLSAgICBTdWJpbWFnZUNhY2hlVGltZXIoKSA6IG1fc2hvdWxkUmVzdGFydFdoZW5UaW1lckZp
cmVzKGZhbHNlKSB7IH0KLSAgICB2b2lkIHJlc3RhcnQoKTsKLXByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIGZpcmVkKCkgT1ZFUlJJREU7Ci0gICAgYm9vbCBtX3Nob3VsZFJlc3RhcnRXaGVuVGlt
ZXJGaXJlczsKLX07Ci0KIHN0cnVjdCBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyIHsKICAgICBTdWJp
bWFnZUNhY2hlIGNhY2hlOwotICAgIFN1YmltYWdlQ2FjaGVUaW1lciB0aW1lcjsKKyAgICBEZWZl
cnJhYmxlT25lU2hvdFRpbWVyPFN1YmltYWdlQ2FjaGVXaXRoVGltZXI+IHRpbWVyOworCisgICAg
U3ViaW1hZ2VDYWNoZVdpdGhUaW1lcigpCisgICAgICAgIDogdGltZXIodGhpcywgJlN1YmltYWdl
Q2FjaGVXaXRoVGltZXI6OmludmFsaWRhdGVDYWNoZVRpbWVyRmlyZWQsIHN1YmltYWdlQ2FjaGVD
bGVhckRlbGF5KQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIGludmFsaWRhdGVDYWNoZVRpbWVy
RmlyZWQoRGVmZXJyYWJsZU9uZVNob3RUaW1lcjxTdWJpbWFnZUNhY2hlV2l0aFRpbWVyPiopOwog
fTsKIAogc3RhdGljIFN1YmltYWdlQ2FjaGVXaXRoVGltZXImIHN1YmltYWdlQ2FjaGUoKQpAQCAt
MTUyLDI1ICsxNTAsOCBAQCBzdGF0aWMgU3ViaW1hZ2VDYWNoZVdpdGhUaW1lciYgc3ViaW1hZ2VD
YWNoZSgpCiAgICAgcmV0dXJuIGNhY2hlOwogfQogCi1pbmxpbmUgdm9pZCBTdWJpbWFnZUNhY2hl
VGltZXI6OnJlc3RhcnQoKQordm9pZCBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyOjppbnZhbGlkYXRl
Q2FjaGVUaW1lckZpcmVkKERlZmVycmFibGVPbmVTaG90VGltZXI8U3ViaW1hZ2VDYWNoZVdpdGhU
aW1lcj4qKQogewotICAgIC8vIFNldHRpbmcgdGhpcyBib29sZWFuIGlzIG11Y2ggbW9yZSBlZmZp
Y2llbnQgdGhhbiBjYWxsaW5nIHN0YXJ0T25lU2hvdAotICAgIC8vIGFnYWluLCB3aGljaCBtaWdo
dCByZXN1bHQgaW4gcmVzY2hlZHVsaW5nIHRoZSBzeXN0ZW0gdGltZXIgYW5kIHRoYXQKLSAgICAv
LyBjYW4gYmUgcXVpdGUgZXhwZW5zaXZlLgotICAgIGlmIChpc0FjdGl2ZSgpKSB7Ci0gICAgICAg
IG1fc2hvdWxkUmVzdGFydFdoZW5UaW1lckZpcmVzID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICBzdGFydE9uZVNob3Qoc3ViaW1hZ2VDYWNoZUNsZWFyRGVsYXkpOwotfQotCi12
b2lkIFN1YmltYWdlQ2FjaGVUaW1lcjo6ZmlyZWQoKQotewotICAgIGlmIChtX3Nob3VsZFJlc3Rh
cnRXaGVuVGltZXJGaXJlcykgewotICAgICAgICBtX3Nob3VsZFJlc3RhcnRXaGVuVGltZXJGaXJl
cyA9IGZhbHNlOwotICAgICAgICBzdGFydE9uZVNob3Qoc3ViaW1hZ2VDYWNoZUNsZWFyRGVsYXkp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIHN1YmltYWdlQ2FjaGUoKS5jYWNoZS5jbGVh
cigpOwogfQogCg==
</data>
<flag name="review"
          id="151648"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>