<?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>78406</bug_id>
          
          <creation_ts>2012-02-10 18:51:09 -0800</creation_ts>
          <short_desc>Move CSSOM wrapper pointer out of StylePropertySet</short_desc>
          <delta_ts>2012-04-11 20:53:36 -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>CSS</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>
          
          <blocked>77745</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>554542</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-10 18:51:09 -0800</bug_when>
    <thetext>...to a global HashMap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554573</commentid>
    <comment_count>1</comment_count>
      <attachid>126620</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-10 23:04:24 -0800</bug_when>
    <thetext>Created attachment 126620
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554574</commentid>
    <comment_count>2</comment_count>
      <attachid>126620</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-10 23:33:15 -0800</bug_when>
    <thetext>Comment on attachment 126620
patch

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

r=me with one fix:

&gt; Source/WebCore/css/StylePropertySet.cpp:49
&gt; +static PropertySetCSSOMWrapperMap* propertySetCSSOMWrapperMap;

This pointer needs to be explicitly initialized.
Also, a common pattern in WebKit is to write these like so:

static PropertySetCSSOMWrapperMap&amp; propertySetCSSOMWrapperMap()
{
    DEFINE_STATIC_LOCAL(PropertySetCSSOMWrapperMap, derp, ());
    return derp;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554575</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-10 23:39:17 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 126620 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126620&amp;action=review
&gt; 
&gt; r=me with one fix:
&gt; 
&gt; &gt; Source/WebCore/css/StylePropertySet.cpp:49
&gt; &gt; +static PropertySetCSSOMWrapperMap* propertySetCSSOMWrapperMap;
&gt; 
&gt; This pointer needs to be explicitly initialized.

Disregard this cool story, bro. TIL that static globals are zero-initialized..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554576</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-10 23:52:57 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/107474

The pattern looks nicer so I did it anyway.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126620</attachid>
            <date>2012-02-10 23:04:24 -0800</date>
            <delta_ts>2012-02-10 23:33:15 -0800</delta_ts>
            <desc>patch</desc>
            <filename>stylepropertyset-cssom-ptr.patch</filename>
            <type>text/plain</type>
            <size>5408</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzQ2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTEwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIENTU09NIHdyYXBwZXIg
cG9pbnRlciBvdXQgb2YgU3R5bGVQcm9wZXJ0eVNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIE1vc3QgU3R5bGVQcm9wZXJ0eVNldCBpbnN0
YW5jZXMgbmV2ZXIgaGF2ZSBDU1NPTSB3cmFwcGVycyBzbyBoYXZpbmcgYSBwb2ludGVyIHRvIG9u
ZSBpbgorICAgICAgICBlYWNoIGFuZCBhbmQgZXZlcnkgb2JqZWN0IG1ha2VzIG5vIHNlbnNlLgor
CisgICAgICAgIE1vdmUgdGhlIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbiBpbnN0YW5j
ZXMgdG8gYSBnbG9iYWwgSGFzaE1hcC4gVGhpcyBzaHJpbmtzCisgICAgICAgIFN0eWxlUHJvcGVy
dHlTZXQgYnkgYSBwb2ludGVyLgorICAgICAgICAKKyAgICAgICAgQWRkZWQgQ09NUElMRV9BU1NF
UlQgZm9yIFN0eWxlUHJvcGVydHlTZXQgc2l6ZS4KKworICAgICAgICAqIGNzcy9TdHlsZVByb3Bl
cnR5U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQ
cm9wZXJ0eVNldDo6U3R5bGVQcm9wZXJ0eVNldCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBy
b3BlcnR5U2V0Ojp+U3R5bGVQcm9wZXJ0eVNldCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBy
b3BlcnR5U2V0OjplbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3MvU3R5
bGVQcm9wZXJ0eVNldC5oOgorICAgICAgICAoU3R5bGVQcm9wZXJ0eVNldCk6CisKIDIwMTItMDIt
MTAgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIEF0b21pY01hcmt1
cFRva2VuQmFzZTo6aW5pdGlhbGl6ZUF0dHJpYnV0ZXMgc2hvdWxkIG5vdCBjcmVhdGUgYSBTdHJp
bmdJbXBsIGlmIGl0IGRvZXNuJ3QgbmVlZCB0bwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUHJvcGVydHlTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVByb3BlcnR5U2V0LmNwcAkocmV2aXNpb24gMTA3NDA3KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydHlTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw5IEBACiB1
c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCit0eXBlZGVm
IEhhc2hNYXA8Y29uc3QgU3R5bGVQcm9wZXJ0eVNldCosIE93blB0cjxQcm9wZXJ0eVNldENTU1N0
eWxlRGVjbGFyYXRpb24+ID4gUHJvcGVydHlTZXRDU1NPTVdyYXBwZXJNYXA7CitzdGF0aWMgUHJv
cGVydHlTZXRDU1NPTVdyYXBwZXJNYXAqIHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwOwogCiBj
bGFzcyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24gOiBwdWJsaWMgQ1NTU3R5bGVEZWNs
YXJhdGlvbiB7CiBwdWJsaWM6CkBAIC0xNjksNiArMTcyLDcgQEAgU3R5bGVQcm9wZXJ0eVNldDo6
U3R5bGVQcm9wZXJ0eVNldCgpCiAgICAgOiBtX3N0cmljdFBhcnNpbmcoZmFsc2UpCiAgICAgLCBt
X3BhcmVudElzRWxlbWVudChmYWxzZSkKICAgICAsIG1faXNJbmxpbmVTdHlsZURlY2xhcmF0aW9u
KGZhbHNlKQorICAgICwgbV9oYXNDU1NPTVdyYXBwZXIoZmFsc2UpCiAgICAgLCBtX3BhcmVudChz
dGF0aWNfY2FzdDxDU1NSdWxlKj4oMCkpCiB7CiB9CkBAIC0xNzcsNiArMTgxLDcgQEAgU3R5bGVQ
cm9wZXJ0eVNldDo6U3R5bGVQcm9wZXJ0eVNldChDU1NSdQogICAgIDogbV9zdHJpY3RQYXJzaW5n
KCFwYXJlbnRSdWxlIHx8IHBhcmVudFJ1bGUtPnVzZVN0cmljdFBhcnNpbmcoKSkKICAgICAsIG1f
cGFyZW50SXNFbGVtZW50KGZhbHNlKQogICAgICwgbV9pc0lubGluZVN0eWxlRGVjbGFyYXRpb24o
ZmFsc2UpCisgICAgLCBtX2hhc0NTU09NV3JhcHBlcihmYWxzZSkKICAgICAsIG1fcGFyZW50KHBh
cmVudFJ1bGUpCiB7CiB9CkBAIC0xODYsNiArMTkxLDcgQEAgU3R5bGVQcm9wZXJ0eVNldDo6U3R5
bGVQcm9wZXJ0eVNldChDU1NSdQogICAgICwgbV9zdHJpY3RQYXJzaW5nKCFwYXJlbnRSdWxlIHx8
IHBhcmVudFJ1bGUtPnVzZVN0cmljdFBhcnNpbmcoKSkKICAgICAsIG1fcGFyZW50SXNFbGVtZW50
KGZhbHNlKQogICAgICwgbV9pc0lubGluZVN0eWxlRGVjbGFyYXRpb24oZmFsc2UpCisgICAgLCBt
X2hhc0NTU09NV3JhcHBlcihmYWxzZSkKICAgICAsIG1fcGFyZW50KHBhcmVudFJ1bGUpCiB7CiAg
ICAgbV9wcm9wZXJ0aWVzLnNocmlua1RvRml0KCk7CkBAIC0xOTUsNiArMjAxLDcgQEAgU3R5bGVQ
cm9wZXJ0eVNldDo6U3R5bGVQcm9wZXJ0eVNldChDU1NSdQogICAgIDogbV9zdHJpY3RQYXJzaW5n
KCFwYXJlbnRSdWxlIHx8IHBhcmVudFJ1bGUtPnVzZVN0cmljdFBhcnNpbmcoKSkKICAgICAsIG1f
cGFyZW50SXNFbGVtZW50KGZhbHNlKQogICAgICwgbV9pc0lubGluZVN0eWxlRGVjbGFyYXRpb24o
ZmFsc2UpCisgICAgLCBtX2hhc0NTU09NV3JhcHBlcihmYWxzZSkKICAgICAsIG1fcGFyZW50KHBh
cmVudFJ1bGUpCiB7CiAgICAgbV9wcm9wZXJ0aWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobnVt
UHJvcGVydGllcyk7CkBAIC0yMjAsMTMgKzIyNywxNiBAQCBTdHlsZVByb3BlcnR5U2V0OjpTdHls
ZVByb3BlcnR5U2V0KFN0eWxlCiAgICAgOiBtX3N0cmljdFBhcnNpbmcoZmFsc2UpCiAgICAgLCBt
X3BhcmVudElzRWxlbWVudCh0cnVlKQogICAgICwgbV9pc0lubGluZVN0eWxlRGVjbGFyYXRpb24o
aXNJbmxpbmVTdHlsZSkKKyAgICAsIG1faGFzQ1NTT01XcmFwcGVyKGZhbHNlKQogICAgICwgbV9w
YXJlbnQocGFyZW50RWxlbWVudCkKIHsKIH0KIAogU3R5bGVQcm9wZXJ0eVNldDo6flN0eWxlUHJv
cGVydHlTZXQoKQogewotICAgIAorICAgIEFTU0VSVCghbV9oYXNDU1NPTVdyYXBwZXIgfHwgcHJv
cGVydHlTZXRDU1NPTVdyYXBwZXJNYXAtPmNvbnRhaW5zKHRoaXMpKTsKKyAgICBpZiAobV9oYXND
U1NPTVdyYXBwZXIpCisgICAgICAgIHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwLT5yZW1vdmUo
dGhpcyk7CiB9CiAKIENTU1N0eWxlU2hlZXQqIFN0eWxlUHJvcGVydHlTZXQ6OmNvbnRleHRTdHls
ZVNoZWV0KCkgY29uc3QKQEAgLTExMTYsOSArMTEyNiwxNCBAQCBQYXNzUmVmUHRyPFN0eWxlUHJv
cGVydHlTZXQ+IFN0eWxlUHJvcGVyCiAKIENTU1N0eWxlRGVjbGFyYXRpb24qIFN0eWxlUHJvcGVy
dHlTZXQ6OmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSBjb25zdAogewotICAgIGlmICghbV9j
c3NTdHlsZURlY2xhcmF0aW9uKQotICAgICAgICBtX2Nzc1N0eWxlRGVjbGFyYXRpb24gPSBhZG9w
dFB0cihuZXcgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKGNvbnN0X2Nhc3Q8U3R5bGVQ
cm9wZXJ0eVNldCo+KHRoaXMpKSk7Ci0gICAgcmV0dXJuIG1fY3NzU3R5bGVEZWNsYXJhdGlvbi5n
ZXQoKTsKKyAgICBpZiAoIXByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKQorICAgICAgICBwcm9w
ZXJ0eVNldENTU09NV3JhcHBlck1hcCA9IG5ldyBQcm9wZXJ0eVNldENTU09NV3JhcHBlck1hcDsK
KyAgICBpZiAobV9oYXNDU1NPTVdyYXBwZXIpCisgICAgICAgIHJldHVybiBwcm9wZXJ0eVNldENT
U09NV3JhcHBlck1hcC0+Z2V0KHRoaXMpOworICAgIG1faGFzQ1NTT01XcmFwcGVyID0gdHJ1ZTsK
KyAgICBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29tV3JhcHBlciA9IG5ldyBQ
cm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24oY29uc3RfY2FzdDxTdHlsZVByb3BlcnR5U2V0
Kj4odGhpcykpOworICAgIHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwLT5hZGQodGhpcywgYWRv
cHRQdHIoY3Nzb21XcmFwcGVyKSk7CisgICAgcmV0dXJuIGNzc29tV3JhcHBlcjsKIH0KIAogdW5z
aWduZWQgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpsZW5ndGgoKSBjb25zdApAQCAt
MTI0OCw0ICsxMjYzLDExIEBAIGJvb2wgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpj
c3MKICAgICByZXR1cm4gbV9wcm9wZXJ0eVNldC0+cHJvcGVydHlNYXRjaGVzKHByb3BlcnR5KTsK
IH0KIAorY2xhc3MgU2FtZVNpemVBc1N0eWxlUHJvcGVydHlTZXQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTYW1lU2l6ZUFzU3R5bGVQcm9wZXJ0eVNldD4geworICAgIFZlY3RvcjxDU1NQcm9wZXJ0eSwg
ND4gcHJvcGVydGllczsKKyAgICB1bnNpZ25lZCBiaXRmaWVsZDsKKyAgICB2b2lkKiBwYXJlbnQ7
Cit9OworQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFN0eWxlUHJvcGVydHlTZXQpID09IHNpemVvZihT
YW1lU2l6ZUFzU3R5bGVQcm9wZXJ0eVNldCksIHN0eWxlX3Byb3BlcnR5X3NldF9zaG91bGRfc3Rh
eV9zbWFsbCk7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydHlTZXQuaAkocmV2aXNpb24gMTA3NDA3KQorKysgU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydHlTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1OSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3N0cmljdFBhcnNpbmcgOiAxOwogICAgIGJvb2wgbV9wYXJl
bnRJc0VsZW1lbnQgOiAxOwogICAgIGJvb2wgbV9pc0lubGluZVN0eWxlRGVjbGFyYXRpb24gOiAx
OworICAgIG11dGFibGUgYm9vbCBtX2hhc0NTU09NV3JhcHBlciA6IDE7CiAKICAgICB1bmlvbiBQ
YXJlbnQgewogICAgICAgICBQYXJlbnQoQ1NTUnVsZSogcnVsZSkgOiBydWxlKHJ1bGUpIHsgfQpA
QCAtMTY3LDggKzE2OCw2IEBAIHByaXZhdGU6CiAgICAgICAgIFN0eWxlZEVsZW1lbnQqIGVsZW1l
bnQ7CiAgICAgfSBtX3BhcmVudDsKICAgICAKLSAgICBtdXRhYmxlIE93blB0cjxQcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb24+IG1fY3NzU3R5bGVEZWNsYXJhdGlvbjsKLSAgICAKICAgICBm
cmllbmQgY2xhc3MgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOwogfTsKIAo=
</data>
<flag name="review"
          id="128476"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="128477"
          type_id="3"
          status="-"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>