<?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>124338</bug_id>
          
          <creation_ts>2013-11-14 01:36:32 -0800</creation_ts>
          <short_desc>FontDescription copies should share families list, not duplicate it.</short_desc>
          <delta_ts>2013-11-14 02:59:57 -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>Text</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="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>mario</cc>
    
    <cc>menard</cc>
    
    <cc>samuel_white</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>950556</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-11-14 01:36:32 -0800</bug_when>
    <thetext>Potential savings here. We have a looooot of FontDescription copies thanks to copy-on-write StyleInheritedData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950557</commentid>
    <comment_count>1</comment_count>
      <attachid>216909</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-11-14 01:38:08 -0800</bug_when>
    <thetext>Created attachment 216909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950566</commentid>
    <comment_count>2</comment_count>
      <attachid>216909</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-14 01:58:33 -0800</bug_when>
    <thetext>Comment on attachment 216909
Patch

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

&gt; Source/WebCore/platform/graphics/FontDescription.h:235
&gt; +inline bool FontDescription::hasEqualFamilies(const FontDescription&amp; other) const
&gt; +{
&gt; +    if (m_families.data() == other.m_families.data())
&gt; +        return true;
&gt; +    if (m_families.size() != other.m_families.size())
&gt; +        return false;
&gt; +    for (unsigned i = 0; i &lt; m_families.size(); ++i) {
&gt; +        if (m_families[i] != other.m_families[i])
&gt; +            return false;
&gt; +    }
&gt; +    return true;
&gt; +}

Seems more like this could be operator== or equals in RefCountedArray</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950580</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-11-14 02:59:57 -0800</bug_when>
    <thetext>Committed r159279: &lt;http://trac.webkit.org/changeset/159279&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216909</attachid>
            <date>2013-11-14 01:38:08 -0800</date>
            <delta_ts>2013-11-14 01:58:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124338.diff</filename>
            <type>text/plain</type>
            <size>6235</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YWM1ODc0Li4yMWQ3N2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTMtMTEtMTQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIEZvbnREZXNjcmlwdGlvbiBjb3BpZXMgc2hvdWxkIHNoYXJlIGZhbWlsaWVzIGxpc3QsIG5v
dCBkdXBsaWNhdGUgaXQuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjQzMzg+CisK
KyAgICAgICAgVHVybiBGb250RGVzY3JpcHRpb246Om1fZmFtaWxpZXMgaW50byBhIFJlZkNvdW50
ZWRBcnJheTxBdG9taWNTdHJpbmc+CisgICAgICAgIGluc3RlYWQgb2YgYSBWZWN0b3I8QXRvbWlj
U3RyaW5nLCAxPi4gVGhpcyBhbGxvd3MgRm9udERlc2NyaXB0aW9uIHRvCisgICAgICAgIHNoYXJl
IHRoZSBmYW1pbGllcyBsaXN0IGJldHdlZW4gY29waWVzLCBpbnN0ZWFkIG9mIGVhY2ggb2JqZWN0
IGhhdmluZworICAgICAgICBpdHMgb3duIFZlY3Rvci4KKworICAgICAgICBBbHNvLCBGb250RGVz
Y3JpcHRpb24gaXRzZWxmIHNocmlua3MgYnkgMTYgYnl0ZXMuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKIDIwMTMtMTEtMTMgIFZpY3RvciBDb3N0YW4gIDxjb3N0YW5A
Z21haWwuY29tPgogCiAgICAgICAgIEJsb2IgY29uc3RydWN0b3IgYWNjZXB0cyBhIHNlcXVlbmNl
IChhcnJheS1saWtlIG9iamVjdCkgYXMgZmlyc3QgYXJnLiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IDY4ZTEyODMuLmM4YTYzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMzIyOSw3ICsz
MjI5LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpoYXNTYW1lRm9udChSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdAogICAgIGlmICghbV9yZW5kZXJlciB8fCAhcmVuZGVy
ZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICByZXR1cm4gbV9yZW5kZXJlci0+
c3R5bGUoKS5mb250RGVzY3JpcHRpb24oKS5mYW1pbGllcygpID09IHJlbmRlcmVyLT5zdHlsZSgp
LmZvbnREZXNjcmlwdGlvbigpLmZhbWlsaWVzKCk7CisgICAgcmV0dXJuIG1fcmVuZGVyZXItPnN0
eWxlKCkuZm9udERlc2NyaXB0aW9uKCkuaGFzRXF1YWxGYW1pbGllcyhyZW5kZXJlci0+c3R5bGUo
KS5mb250RGVzY3JpcHRpb24oKSk7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6aGFzU2FtZUZvbnRDb2xvcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDk5YTc1YWEu
LjQ5ZGUxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRl
ci5jcHAKQEAgLTcxMCw3ICs3MTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgb2xkRmFtaWx5
VXNlZEZpeGVkRGVmYXVsdFNpemUgPSBmb250RGVzY3JpcHRpb24udXNlRml4ZWREZWZhdWx0U2l6
ZSgpOwogICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3Jp
cHRpb246Ok5vRmFtaWx5KTsKIAotICAgICAgICBWZWN0b3I8QXRvbWljU3RyaW5nLCAxPiBmYW1p
bGllczsKKyAgICAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gZmFtaWxpZXM7CiAgICAgICAgIGZh
bWlsaWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodmFsdWVMaXN0Lmxlbmd0aCgpKTsKIAogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdmFsdWVMaXN0Lmxlbmd0aCgpOyArK2kpIHsK
QEAgLTc2NCw3ICs3NjQsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgaWYgKGZhbWlsaWVzLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZm9udERlc2NyaXB0aW9uLmFkb3B0
RmFtaWxpZXMoZmFtaWxpZXMpOworICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0RmFtaWxpZXMo
ZmFtaWxpZXMpOwogCiAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24ua2V5d29yZFNpemUoKSAm
JiBmb250RGVzY3JpcHRpb24udXNlRml4ZWREZWZhdWx0U2l6ZSgpICE9IG9sZEZhbWlseVVzZWRG
aXhlZERlZmF1bHRTaXplKQogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c2V0Rm9udFNpemUo
Zm9udERlc2NyaXB0aW9uLCBTdHlsZTo6Zm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlWHhTbWFs
bCArIGZvbnREZXNjcmlwdGlvbi5rZXl3b3JkU2l6ZSgpIC0gMSwgIW9sZEZhbWlseVVzZWRGaXhl
ZERlZmF1bHRTaXplLCBzdHlsZVJlc29sdmVyLT5kb2N1bWVudCgpKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAppbmRleCA0
NGJmMzllYy4uODRiYjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCkBAIC0zMyw4ICszMyw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0cnVjdCBTYW1lU2l6ZUFzRm9udERlc2NyaXB0aW9uIHsKLSAgICBWZWN0
b3I8QXRvbWljU3RyaW5nLCAxPiBmYW1pbGllczsKLSAgICBSZWZQdHI8Rm9udEZlYXR1cmVTZXR0
aW5ncz4gbV9mZWF0dXJlU2V0dGluZ3M7CisgICAgdm9pZCogcG9pbnRlcnNbMl07CiAgICAgZmxv
YXQgc2l6ZXNbMl07CiAgICAgLy8gRlhJTUU6IE1ha2UgdGhlbSBmaXQgaW50byBvbmUgd29yZC4K
ICAgICB1aW50MzJfdCBiaXRmaWVsZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCmluZGV4IDY4NzgyNzYuLjcyNDkxODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5o
CkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiVGV4dFJlbmRlcmluZ01vZGUuaCIKICNpbmNs
dWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgotCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTA3LDcgKzEwNyw4IEBAIHB1YmxpYzoK
ICAgICB1bnNpZ25lZCBmYW1pbHlDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZmFtaWxpZXMuc2l6
ZSgpOyB9CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmaXJzdEZhbWlseSgpIGNvbnN0IHsgcmV0
dXJuIGZhbWlseUF0KDApOyB9CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlBdCh1bnNp
Z25lZCBpKSBjb25zdCB7IHJldHVybiBtX2ZhbWlsaWVzW2ldOyB9Ci0gICAgY29uc3QgVmVjdG9y
PEF0b21pY1N0cmluZywgMT4mIGZhbWlsaWVzKCkgY29uc3QgeyByZXR1cm4gbV9mYW1pbGllczsg
fQorICAgIGNvbnN0IFJlZkNvdW50ZWRBcnJheTxBdG9taWNTdHJpbmc+JiBmYW1pbGllcygpIGNv
bnN0IHsgcmV0dXJuIG1fZmFtaWxpZXM7IH0KKyAgICBib29sIGhhc0VxdWFsRmFtaWxpZXMoY29u
c3QgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CiAKICAgICBmbG9hdCBzcGVjaWZpZWRTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9zcGVjaWZpZWRTaXplOyB9CiAgICAgZmxvYXQgY29tcHV0ZWRTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlZFNpemU7IH0KQEAgLTE0MSw4ICsxNDIsOCBAQCBw
dWJsaWM6CiAgICAgRm9udERlc2NyaXB0aW9uIG1ha2VOb3JtYWxGZWF0dXJlU2V0dGluZ3MoKSBj
b25zdDsKIAogICAgIHZvaWQgc2V0T25lRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5
KSB7IEFTU0VSVChtX2ZhbWlsaWVzLnNpemUoKSA9PSAxKTsgbV9mYW1pbGllc1swXSA9IGZhbWls
eTsgfQotICAgIHZvaWQgc2V0RmFtaWxpZXMoY29uc3QgVmVjdG9yPEF0b21pY1N0cmluZywgMT4m
IGZhbWlsaWVzKSB7IG1fZmFtaWxpZXMgPSBmYW1pbGllczsgfQotICAgIHZvaWQgYWRvcHRGYW1p
bGllcyhWZWN0b3I8QXRvbWljU3RyaW5nLCAxPiYgZmFtaWxpZXMpIHsgbV9mYW1pbGllcy5zd2Fw
KGZhbWlsaWVzKTsgfQorICAgIHZvaWQgc2V0RmFtaWxpZXMoY29uc3QgVmVjdG9yPEF0b21pY1N0
cmluZz4mIGZhbWlsaWVzKSB7IG1fZmFtaWxpZXMgPSBSZWZDb3VudGVkQXJyYXk8QXRvbWljU3Ry
aW5nPihmYW1pbGllcyk7IH0KKyAgICB2b2lkIHNldEZhbWlsaWVzKGNvbnN0IFJlZkNvdW50ZWRB
cnJheTxBdG9taWNTdHJpbmc+JiBmYW1pbGllcykgeyBtX2ZhbWlsaWVzID0gZmFtaWxpZXM7IH0K
ICAgICB2b2lkIHNldENvbXB1dGVkU2l6ZShmbG9hdCBzKSB7IG1fY29tcHV0ZWRTaXplID0gY2xh
bXBUb0Zsb2F0KHMpOyB9CiAgICAgdm9pZCBzZXRTcGVjaWZpZWRTaXplKGZsb2F0IHMpIHsgbV9z
cGVjaWZpZWRTaXplID0gY2xhbXBUb0Zsb2F0KHMpOyB9CiAgICAgdm9pZCBzZXRJdGFsaWMoRm9u
dEl0YWxpYyBpKSB7IG1faXRhbGljID0gaTsgfQpAQCAtMTgzLDcgKzE4NCw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiBwcml2YXRlOgotICAgIFZlY3RvcjxBdG9taWNTdHJpbmcsIDE+IG1fZmFtaWxp
ZXM7CisgICAgUmVmQ291bnRlZEFycmF5PEF0b21pY1N0cmluZz4gbV9mYW1pbGllczsKICAgICBS
ZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gbV9mZWF0dXJlU2V0dGluZ3M7CiAKICAgICBmbG9h
dCBtX3NwZWNpZmllZFNpemU7ICAgLy8gU3BlY2lmaWVkIENTUyB2YWx1ZS4gSW5kZXBlbmRlbnQg
b2YgcmVuZGVyaW5nIGlzc3VlcyBzdWNoIGFzIGludGVnZXIKQEAgLTIyMCw5ICsyMjEsMjIgQEAg
cHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3NjcmlwdCA6IDc7IC8vIFVzZWQgdG8gaGVscCBjaG9v
c2UgYW4gYXBwcm9wcmlhdGUgZm9udCBmb3IgZ2VuZXJpYyBmb250IGZhbWlsaWVzLgogfTsKIAor
aW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpoYXNFcXVhbEZhbWlsaWVzKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgb3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKG1fZmFtaWxpZXMuZGF0YSgpID09
IG90aGVyLm1fZmFtaWxpZXMuZGF0YSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAo
bV9mYW1pbGllcy5zaXplKCkgIT0gb3RoZXIubV9mYW1pbGllcy5zaXplKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9mYW1pbGllcy5zaXpl
KCk7ICsraSkgeworICAgICAgICBpZiAobV9mYW1pbGllc1tpXSAhPSBvdGhlci5tX2ZhbWlsaWVz
W2ldKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogaW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fZmFtaWxpZXMgPT0gb3Ro
ZXIubV9mYW1pbGllcworICAgIHJldHVybiBoYXNFcXVhbEZhbWlsaWVzKG90aGVyKQogICAgICAg
ICAmJiBtX3NwZWNpZmllZFNpemUgPT0gb3RoZXIubV9zcGVjaWZpZWRTaXplCiAgICAgICAgICYm
IG1fY29tcHV0ZWRTaXplID09IG90aGVyLm1fY29tcHV0ZWRTaXplCiAgICAgICAgICYmIG1faXRh
bGljID09IG90aGVyLm1faXRhbGljCg==
</data>
<flag name="review"
          id="239961"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>