<?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>54905</bug_id>
          
          <creation_ts>2011-02-21 13:44:46 -0800</creation_ts>
          <short_desc>Remove global initializer in CookieStorageCFNet.cpp</short_desc>
          <delta_ts>2011-02-21 16:15:26 -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>PC</rep_platform>
          <op_sys>OS X 10.5</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>51836</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Pratik Solanki">psolanki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>psolanki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>354787</commentid>
    <comment_count>0</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-02-21 13:44:46 -0800</bug_when>
    <thetext>When compiling CookieStorageCFNet.cpp on Mac, I get

PhaseScriptExecution &quot;Check For Global Initializers&quot;
ERROR: CookieStorageCFNet.o has one or more global initializers in it! (/Volumes/Data/psolanki/sources/external/WebKit.git/WebKitBuild/cfnetwork-mac/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/CookieStorageCFNet.o), near WebCore::currentCookieStorage() __ZN7WebCore20currentCookieStorageEv.eh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354788</commentid>
    <comment_count>1</comment_count>
      <attachid>83212</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-02-21 13:48:28 -0800</bug_when>
    <thetext>Created attachment 83212
Patch

First stab at fixing this error. Is there a better way to do this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354798</commentid>
    <comment_count>2</comment_count>
      <attachid>83212</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-21 14:11:53 -0800</bug_when>
    <thetext>Comment on attachment 83212
Patch

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

&gt; Source/WebCore/platform/network/cf/CookieStorageCFNet.cpp:43
&gt; -static RetainPtr&lt;CFHTTPCookieStorageRef&gt; s_cookieStorage;
&gt; +static CFHTTPCookieStorageRef s_cookieStorage;

Do we need to init s_cookieStorage to 0 ?

&gt; Source/WebCore/platform/network/cf/CookieStorageCFNet.cpp:70
&gt; +        s_cookieStorage = wkCreatePrivateHTTPCookieStorage();

Should we assert that s_cookieStorage is 0 here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354800</commentid>
    <comment_count>3</comment_count>
      <attachid>83212</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-02-21 14:16:43 -0800</bug_when>
    <thetext>Comment on attachment 83212
Patch

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

&gt;&gt; Source/WebCore/platform/network/cf/CookieStorageCFNet.cpp:43
&gt;&gt; +static CFHTTPCookieStorageRef s_cookieStorage;
&gt; 
&gt; Do we need to init s_cookieStorage to 0 ?

Statics are initialized to 0 so we should be fine here.

&gt;&gt; Source/WebCore/platform/network/cf/CookieStorageCFNet.cpp:70
&gt;&gt; +        s_cookieStorage = wkCreatePrivateHTTPCookieStorage();
&gt; 
&gt; Should we assert that s_cookieStorage is 0 here?

Good catch. adoptCF() calls CFRelease on its m_ptr so my patch would cause a leak. I think a conditional release before the if block should fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354823</commentid>
    <comment_count>4</comment_count>
      <attachid>83219</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-02-21 14:54:56 -0800</bug_when>
    <thetext>Created attachment 83219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354831</commentid>
    <comment_count>5</comment_count>
      <attachid>83219</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-21 15:03:19 -0800</bug_when>
    <thetext>Comment on attachment 83219
Patch

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

&gt; Source/WebCore/platform/network/cf/CookieStorageCFNet.cpp:61
&gt; +    if (s_cookieStorage)
&gt; +        CFRelease(s_cookieStorage);
&gt; +
&gt; +    CFRetain(cookieStorage);

The usual pattern is to put retain before release so things work properly if s_cookieStorage and cookieStorage happen to be the same object. You could do that here by just moving the CFRetain call up a couple lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354888</commentid>
    <comment_count>6</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-02-21 16:15:13 -0800</bug_when>
    <thetext>Commited r79261 - &lt;http://trac.webkit.org/changeset/79261&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83212</attachid>
            <date>2011-02-21 13:48:28 -0800</date>
            <delta_ts>2011-02-21 14:54:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54905-20110221134826.patch</filename>
            <type>text/plain</type>
            <size>2227</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzkyMzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYmMxNDU2ZDc4ZDIxN2Uw
ZGU0ZTNhODQ0NzNhYjcwZGMxNDIwMTc5Li5mYjllYmVlNzFiODBjZGYwZGY5YjEyMmM0NjE3MWQ3
NWQzM2Y2MDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTEtMDItMjEgIFByYXRp
ayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBnbG9iYWwgaW5pdGlhbGl6ZXIgaW4gQ29v
a2llU3RvcmFnZUNGTmV0LmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTQ5MDUKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvQ29va2ll
U3RvcmFnZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmN1cnJlbnRDb29raWVTdG9yYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEN1cnJlbnRDb29raWVTdG9yYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKworMjAx
MS0wMi0yMSAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKICAgICAgICAg
V2ViQ29yZSBzaG91bGQgdXNlIENGTmV0d29yay1iYXNlZCBsb2FkZXIgb24gTWFjCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTgzNgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5l
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VD
Rk5ldC5jcHAKaW5kZXggOWY3MWU0M2FjNzZiOTc0ODcwYTcyMjhhZTFiNGU1Zjc0NjY0NTNjMC4u
ZTVmNmI1MTBkMDYzOGRhMDNkZWEwNjI2NzVmMjQxZWEyZWFlMTBlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0
LmNwcApAQCAtNDAsMTQgKzQwLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGlj
IFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBzX2Nvb2tpZVN0b3JhZ2U7CitzdGF0
aWMgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBzX2Nvb2tpZVN0b3JhZ2U7CiAKIENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYgY3VycmVudENvb2tpZVN0b3JhZ2UoKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKICAgICBpZiAoc19jb29raWVTdG9yYWdlKQotICAgICAgICByZXR1cm4gc19j
b29raWVTdG9yYWdlLmdldCgpOworICAgICAgICByZXR1cm4gc19jb29raWVTdG9yYWdlOwogICAg
IHJldHVybiB3a0dldERlZmF1bHRIVFRQQ29va2llU3RvcmFnZSgpOwogfQogCkBAIC01NSw2ICs1
NSwxMCBAQCB2b2lkIHNldEN1cnJlbnRDb29raWVTdG9yYWdlKENGSFRUUENvb2tpZVN0b3JhZ2VS
ZWYgY29va2llU3RvcmFnZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCisgICAg
aWYgKHNfY29va2llU3RvcmFnZSkKKyAgICAgICAgQ0ZSZWxlYXNlKHNfY29va2llU3RvcmFnZSk7
CisKKyAgICBDRlJldGFpbihjb29raWVTdG9yYWdlKTsKICAgICBzX2Nvb2tpZVN0b3JhZ2UgPSBj
b29raWVTdG9yYWdlOwogfQogCkBAIC02Myw5ICs2NywxMSBAQCB2b2lkIHNldENvb2tpZVN0b3Jh
Z2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCiAgICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIHNfY29va2llU3RvcmFnZS5h
ZG9wdENGKHdrQ3JlYXRlUHJpdmF0ZUhUVFBDb29raWVTdG9yYWdlKCkpOwotICAgIGVsc2UKKyAg
ICAgICAgc19jb29raWVTdG9yYWdlID0gd2tDcmVhdGVQcml2YXRlSFRUUENvb2tpZVN0b3JhZ2Uo
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgQ0ZSZWxlYXNlKHNfY29va2llU3RvcmFnZSk7CiAgICAg
ICAgIHNfY29va2llU3RvcmFnZSA9IDA7CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83219</attachid>
            <date>2011-02-21 14:54:56 -0800</date>
            <delta_ts>2011-02-21 15:03:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54905-20110221145454.patch</filename>
            <type>text/plain</type>
            <size>2213</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzkyMzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYmMxNDU2ZDc4ZDIxN2Uw
ZGU0ZTNhODQ0NzNhYjcwZGMxNDIwMTc5Li5mYjllYmVlNzFiODBjZGYwZGY5YjEyMmM0NjE3MWQ3
NWQzM2Y2MDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTEtMDItMjEgIFByYXRp
ayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBnbG9iYWwgaW5pdGlhbGl6ZXIgaW4gQ29v
a2llU3RvcmFnZUNGTmV0LmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTQ5MDUKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvQ29va2ll
U3RvcmFnZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmN1cnJlbnRDb29raWVTdG9yYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEN1cnJlbnRDb29raWVTdG9yYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKworMjAx
MS0wMi0yMSAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKICAgICAgICAg
V2ViQ29yZSBzaG91bGQgdXNlIENGTmV0d29yay1iYXNlZCBsb2FkZXIgb24gTWFjCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTgzNgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5l
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VD
Rk5ldC5jcHAKaW5kZXggOWY3MWU0M2FjNzZiOTc0ODcwYTcyMjhhZTFiNGU1Zjc0NjY0NTNjMC4u
NGQ1ZTAyZmYxYzRkOGViZjdjNTJmYWUzZjkwMTc0NDY0N2EwZWZlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0
LmNwcApAQCAtNDAsMTQgKzQwLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGlj
IFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBzX2Nvb2tpZVN0b3JhZ2U7CitzdGF0
aWMgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBzX2Nvb2tpZVN0b3JhZ2U7CiAKIENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYgY3VycmVudENvb2tpZVN0b3JhZ2UoKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKICAgICBpZiAoc19jb29raWVTdG9yYWdlKQotICAgICAgICByZXR1cm4gc19j
b29raWVTdG9yYWdlLmdldCgpOworICAgICAgICByZXR1cm4gc19jb29raWVTdG9yYWdlOwogICAg
IHJldHVybiB3a0dldERlZmF1bHRIVFRQQ29va2llU3RvcmFnZSgpOwogfQogCkBAIC01NSw2ICs1
NSwxMCBAQCB2b2lkIHNldEN1cnJlbnRDb29raWVTdG9yYWdlKENGSFRUUENvb2tpZVN0b3JhZ2VS
ZWYgY29va2llU3RvcmFnZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCisgICAg
aWYgKHNfY29va2llU3RvcmFnZSkKKyAgICAgICAgQ0ZSZWxlYXNlKHNfY29va2llU3RvcmFnZSk7
CisKKyAgICBDRlJldGFpbihjb29raWVTdG9yYWdlKTsKICAgICBzX2Nvb2tpZVN0b3JhZ2UgPSBj
b29raWVTdG9yYWdlOwogfQogCkBAIC02Miw4ICs2NiwxMSBAQCB2b2lkIHNldENvb2tpZVN0b3Jh
Z2VQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogCisgICAgaWYgKHNfY29va2llU3RvcmFnZSkKKyAgICAgICAgQ0ZSZWxl
YXNlKHNfY29va2llU3RvcmFnZSk7CisKICAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgc19jb29r
aWVTdG9yYWdlLmFkb3B0Q0Yod2tDcmVhdGVQcml2YXRlSFRUUENvb2tpZVN0b3JhZ2UoKSk7Cisg
ICAgICAgIHNfY29va2llU3RvcmFnZSA9IHdrQ3JlYXRlUHJpdmF0ZUhUVFBDb29raWVTdG9yYWdl
KCk7CiAgICAgZWxzZQogICAgICAgICBzX2Nvb2tpZVN0b3JhZ2UgPSAwOwogfQo=
</data>
<flag name="review"
          id="74989"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>