<?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>141353</bug_id>
          
          <creation_ts>2015-02-06 23:37:38 -0800</creation_ts>
          <short_desc>Avoid using a HashMap for DisplayRefreshMonitorManager, which rarely has more than one item</short_desc>
          <delta_ts>2015-02-09 15:40:21 -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>New Bugs</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>andersca</cc>
    
    <cc>dino</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1067504</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-06 23:37:38 -0800</bug_when>
    <thetext>Avoid using a HashMap for DisplayRefreshMonitorManager, which rarely has more than one item</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067505</commentid>
    <comment_count>1</comment_count>
      <attachid>246201</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-06 23:40:23 -0800</bug_when>
    <thetext>Created attachment 246201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067531</commentid>
    <comment_count>2</comment_count>
      <attachid>246201</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-02-07 08:58:13 -0800</bug_when>
    <thetext>Comment on attachment 246201
Patch

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

&gt; Source/WebCore/platform/graphics/DisplayRefreshMonitorManager.cpp:-99
&gt; -        ASSERT(m_monitors.contains(monitor-&gt;displayID()));

I&apos;d keep this assert instead of the ASSERT_NOT_REACHED below. Might have to rewrite it to use Vector::find in case Vector doesn&apos;t have a contains member function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067943</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-09 15:40:21 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/179850</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246201</attachid>
            <date>2015-02-06 23:40:23 -0800</date>
            <delta_ts>2015-02-07 08:58:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141353-20150206234022.patch</filename>
            <type>text/plain</type>
            <size>6282</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdhNjlmNDJmZTMxNGE1
ODI3NDhiN2VkMzdmMzU1ZmFiZmY0ZTRiNC4uMDcxOTI0N2U2ZGM1MzM3MGJhNzQ0NDRmZTgxYTYz
MzdlYTdlYThjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE1LTAyLTA2ICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAorICAgICAgICBBdm9pZCB1
c2luZyBhIEhhc2hNYXAgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIsIHdoaWNoIHJh
cmVseSBoYXMgbW9yZSB0aGFuIG9uZSBpdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEzNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlY2F1c2UgdGhlcmUncyBubyBiZWhh
dmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVz
aE1vbml0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9u
aXRvck1hbmFnZXI6OmVuc3VyZU1vbml0b3JGb3JDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6dW5yZWdpc3RlckNsaWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpkaXNwbGF5RGlkUmVmcmVz
aCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFu
YWdlci5oOgorICAgICAgICBVc2UgYSBWZWN0b3Igb2YgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9u
aXRvcj4gaW5zdGVhZCBvZiBhIEhhc2hNYXAKKyAgICAgICAgZnJvbSB1aW50NjRfdCB0byBSZWZQ
dHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPi4gVGhlcmUncyB1c3VhbGx5IG9ubHkgb25lCisgICAg
ICAgIGRpc3BsYXksIHNvIHRoZXJlJ3MgdXN1YWxseSBvbmx5IG9uZSBEaXNwbGF5UmVmcmVzaE1v
bml0b3IuIExpbmVhciBzZWFyY2gKKyAgICAgICAgb24gdGhlIFZlY3RvciB3aWxsIGJlIGZhc3Rl
ciB0aGFuIHRoZSBoYXNoIGxvb2t1cCBpbiBhbGwgY29uY2VpdmFibGUgY2FzZXMuCisgICAgICAg
IFRoaXMgYWxzbyBhdm9pZHMgdGhlIHNpdHVhdGlvbiBtZW50aW9uZWQgaW4gdGhlIGNvbW1lbnRz
IGluIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaAorICAgICAgICB3aGVyZSB3ZSBkb24n
dCBrbm93IGVub3VnaCBhYm91dCBQbGF0Zm9ybURpc3BsYXlJRCB0byBzYWZlbHkgaGFzaCBpdC4K
KworMjAxNS0wMi0wNiAgVGltb3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKICAgICAgICAgUkVHUkVTU0lPTjogTG9va3VwIGRvZXNuJ3Qgd29yayBpbiBSVEwKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTMzOAogICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTk3Mzg0MDc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIu
Y3BwCmluZGV4IDEzN2ViOTJkNmRhZmI4MDk2NGJmMDU4YjE0YTUzNTNlNDEzOGZhMTcuLjg3YmNh
MjQxMjA2N2RhYzZiN2QzNDQyMjNjNDU5NDA5YWUzMmJmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvck1hbmFnZXIuY3BwCkBAIC00NiwxNiArNDYsMTkgQEAgRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFuYWdlciYgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpCiAK
IERpc3BsYXlSZWZyZXNoTW9uaXRvciogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6ZW5z
dXJlTW9uaXRvckZvckNsaWVudChEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQqIGNsaWVudCkK
IHsKLSAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYXA6Oml0ZXJhdG9yIGl0ID0gbV9tb25pdG9y
cy5maW5kKGNsaWVudC0+ZGlzcGxheUlEKCkpOwotICAgIGlmIChpdCA9PSBtX21vbml0b3JzLmVu
ZCgpKSB7Ci0gICAgICAgIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IG1vbml0b3IgPSBE
aXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0ZShjbGllbnQpOworICAgIFBsYXRmb3JtRGlzcGxh
eUlEIGNsaWVudERpc3BsYXlJRCA9IGNsaWVudC0+ZGlzcGxheUlEKCk7CisgICAgZm9yIChjb25z
dCBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiYgbW9uaXRvciA6IG1fbW9uaXRvcnMpIHsK
KyAgICAgICAgaWYgKG1vbml0b3ItPmRpc3BsYXlJRCgpICE9IGNsaWVudERpc3BsYXlJRCkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBtb25pdG9yLT5hZGRDbGllbnQoY2xpZW50KTsK
LSAgICAgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yKiByZXN1bHQgPSBtb25pdG9yLmdldCgpOwot
ICAgICAgICBtX21vbml0b3JzLmFkZChjbGllbnQtPmRpc3BsYXlJRCgpLCBtb25pdG9yLnJlbGVh
c2UoKSk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJldHVybiBtb25pdG9yLmdl
dCgpOwogICAgIH0KLSAgICBpdC0+dmFsdWUtPmFkZENsaWVudChjbGllbnQpOwotICAgIHJldHVy
biBpdC0+dmFsdWUuZ2V0KCk7CisKKyAgICBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBt
b25pdG9yID0gRGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGUoY2xpZW50KTsKKyAgICBtb25p
dG9yLT5hZGRDbGllbnQoY2xpZW50KTsKKyAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3IqIHJlc3Vs
dCA9IG1vbml0b3IuZ2V0KCk7CisgICAgbV9tb25pdG9ycy5hcHBlbmQobW9uaXRvci5yZWxlYXNl
KCkpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFuYWdlcjo6cmVnaXN0ZXJDbGllbnQoRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50KiBjbGll
bnQpCkBAIC03MSwxNCArNzQsMTYgQEAgdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2Vy
Ojp1bnJlZ2lzdGVyQ2xpZW50KERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCoKICAgICBpZiAo
IWNsaWVudC0+aGFzRGlzcGxheUlEKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIERpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hcDo6aXRlcmF0b3IgaXQgPSBtX21vbml0b3JzLmZpbmQoY2xpZW50LT5k
aXNwbGF5SUQoKSk7Ci0gICAgaWYgKGl0ID09IG1fbW9uaXRvcnMuZW5kKCkpCisgICAgUGxhdGZv
cm1EaXNwbGF5SUQgY2xpZW50RGlzcGxheUlEID0gY2xpZW50LT5kaXNwbGF5SUQoKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbW9uaXRvcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
UmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gbW9uaXRvciA9IG1fbW9uaXRvcnNbaV07Cisg
ICAgICAgIGlmIChtb25pdG9yLT5kaXNwbGF5SUQoKSAhPSBjbGllbnREaXNwbGF5SUQpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKG1vbml0b3ItPnJlbW92ZUNsaWVudChjbGll
bnQpKSB7CisgICAgICAgICAgICBpZiAoIW1vbml0b3ItPmhhc0NsaWVudHMoKSkKKyAgICAgICAg
ICAgICAgICBtX21vbml0b3JzLnJlbW92ZShpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47
Ci0KLSAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3IqIG1vbml0b3IgPSBpdC0+dmFsdWUuZ2V0KCk7
Ci0gICAgaWYgKG1vbml0b3ItPnJlbW92ZUNsaWVudChjbGllbnQpKSB7Ci0gICAgICAgIGlmICgh
bW9uaXRvci0+aGFzQ2xpZW50cygpKQotICAgICAgICAgICAgbV9tb25pdG9ycy5yZW1vdmUoaXQp
OwogICAgIH0KIH0KIApAQCAtOTUsMTAgKzEwMCwxOCBAQCBib29sIERpc3BsYXlSZWZyZXNoTW9u
aXRvck1hbmFnZXI6OnNjaGVkdWxlQW5pbWF0aW9uKERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVu
dAogCiB2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OmRpc3BsYXlEaWRSZWZyZXNo
KERpc3BsYXlSZWZyZXNoTW9uaXRvciogbW9uaXRvcikKIHsKLSAgICBpZiAobW9uaXRvci0+c2hv
dWxkQmVUZXJtaW5hdGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKG1fbW9uaXRvcnMuY29udGFpbnMo
bW9uaXRvci0+ZGlzcGxheUlEKCkpKTsKLSAgICAgICAgbV9tb25pdG9ycy5yZW1vdmUobW9uaXRv
ci0+ZGlzcGxheUlEKCkpOworICAgIGlmICghbW9uaXRvci0+c2hvdWxkQmVUZXJtaW5hdGVkKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFBsYXRmb3JtRGlzcGxheUlEIG1vbml0b3JEaXNwbGF5
SUQgPSBtb25pdG9yLT5kaXNwbGF5SUQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
bW9uaXRvcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9u
aXRvcj4gbW9uaXRvciA9IG1fbW9uaXRvcnNbaV07CisgICAgICAgIGlmIChtb25pdG9yLT5kaXNw
bGF5SUQoKSAhPSBtb25pdG9yRGlzcGxheUlEKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIG1fbW9uaXRvcnMucmVtb3ZlKGkpOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFn
ZXI6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIERp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCogY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFu
YWdlci5oCmluZGV4IDI5NmE3YzkzMDZhNWUxZWVlZWUzNDQzYWJlMDNiZDU2MzliYWMzNzUuLjlj
NDM1NjBlMmZkMjFmOGZmZDY0ZjM0YmE0MWJiMjgxYjg2ZmE2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3JNYW5hZ2VyLmgKQEAgLTMwLDkgKzMwLDkgQEAKIAogI2luY2x1ZGUgIkRpc3BsYXlSZWZy
ZXNoTW9uaXRvci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCi0jaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTU2LDExICs1Niw3IEBAIHByaXZhdGU6CiAKICAgICBEaXNwbGF5UmVmcmVzaE1v
bml0b3IqIGVuc3VyZU1vbml0b3JGb3JDbGllbnQoRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50
Kik7CiAKLSAgICAvLyBXZSBrbm93IG5vdGhpbmcgYWJvdXQgdGhlIHZhbHVlcyBvZiBQbGF0Zm9y
bURpc3BsYXlJRHMsIHNvIHVzZSBVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0cy4KLSAgICAv
LyBGSVhNRTogU2luY2Ugd2Uga25vdyBub3RoaW5nIGFib3V0IHRoZXNlIHZhbHVlcywgdGhpcyBp
cyBub3Qgc3VmZmljaWVudC4KLSAgICAvLyBFdmVuIHdpdGggVW5zaWduZWRXaXRoWmVyb0tleUhh
c2hUcmFpdHMsIHRoZXJlIGFyZSBzdGlsbCB0d28gc3BlY2lhbCB2YWx1ZXMgdXNlZCBmb3IgZW1w
dHkgYW5kIGRlbGV0ZWQgaGFzaCB0YWJsZSBzbG90cy4KLSAgICB0eXBlZGVmIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+LCBXVEY6OkludEhhc2g8dWludDY0
X3Q+LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFwOwotICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hcCBtX21vbml0
b3JzOworICAgIFZlY3RvcjxSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPj4gbV9tb25pdG9y
czsKIH07CiAKIH0K
</data>
<flag name="review"
          id="271132"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>