diff options
author | joth@chromium.org <joth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-15 13:31:49 +0000 |
---|---|---|
committer | joth@chromium.org <joth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-15 13:31:49 +0000 |
commit | 6de0fd1d935e8c6c9257f1082dbd227acb1a06b1 (patch) | |
tree | 0ed5bc4ef9c2da0b498c30e562218f4528eaac9e /net | |
parent | 0f86c358fdb5e47aa9cd4a99b12da5e66507d080 (diff) | |
download | chromium_src-6de0fd1d935e8c6c9257f1082dbd227acb1a06b1.zip chromium_src-6de0fd1d935e8c6c9257f1082dbd227acb1a06b1.tar.gz chromium_src-6de0fd1d935e8c6c9257f1082dbd227acb1a06b1.tar.bz2 |
Allow linker initialization of lazy instance
Using the initializer list construct = {0} allows the object to be linker initialized.
Modify the LazyInstance class design to make it a pod aggregate type that can be linker initialized this way. Also combines the instance and state members, in line with the Singleton<> class design.
Introduces a new LAZY_INSTANCE_INITIALIZER macro specifically for using to init all lazy instances + modify all existing callsites to use it. (Old code would no longer compile)
BUG=94925
TEST=existing tests pass. http://build.chromium.org/f/chromium/perf/linux-release/sizes/report.html?history=150&header=chrome-si&graph=chrome-si&rev=-1 should step downward.
TBR=jam@chromium.org,rvargas@chromium.org,darin@chromium.org,ben@chromium.org,apatrick@chromium.org,akalin@chromium.org
Review URL: http://codereview.chromium.org/8491043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110076 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
25 files changed, 45 insertions, 45 deletions
diff --git a/net/base/bandwidth_metrics.cc b/net/base/bandwidth_metrics.cc index fa23a77..0644122 100644 --- a/net/base/bandwidth_metrics.cc +++ b/net/base/bandwidth_metrics.cc @@ -1,12 +1,12 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/lazy_instance.h" #include "net/base/bandwidth_metrics.h" -static base::LazyInstance<net::BandwidthMetrics> g_bandwidth_metrics( - base::LINKER_INITIALIZED); +static base::LazyInstance<net::BandwidthMetrics> g_bandwidth_metrics = + LAZY_INSTANCE_INITIALIZER; namespace net { diff --git a/net/base/cert_database_nss_unittest.cc b/net/base/cert_database_nss_unittest.cc index 7b1c3e2..1038e76 100644 --- a/net/base/cert_database_nss_unittest.cc +++ b/net/base/cert_database_nss_unittest.cc @@ -133,8 +133,8 @@ class CertDatabaseNSSTest : public testing::Test { }; // static -base::LazyInstance<ScopedTempDir> CertDatabaseNSSTest::temp_db_dir_( - base::LINKER_INITIALIZED); +base::LazyInstance<ScopedTempDir> CertDatabaseNSSTest::temp_db_dir_ = + LAZY_INSTANCE_INITIALIZER; TEST_F(CertDatabaseNSSTest, ListCerts) { // This test isn't terribly useful, though it will at least let valgrind test diff --git a/net/base/dns_reloader.cc b/net/base/dns_reloader.cc index d45c145..276d1a0 100644 --- a/net/base/dns_reloader.cc +++ b/net/base/dns_reloader.cc @@ -101,7 +101,7 @@ base::ThreadLocalStorage::Slot DnsReloader::tls_index_( base::LazyInstance<DnsReloader, base::LeakyLazyInstanceTraits<DnsReloader> > - g_dns_reloader(base::LINKER_INITIALIZED); + g_dns_reloader = LAZY_INSTANCE_INITIALIZER; } // namespace diff --git a/net/base/ev_root_ca_metadata.cc b/net/base/ev_root_ca_metadata.cc index 6314b77..660a088 100644 --- a/net/base/ev_root_ca_metadata.cc +++ b/net/base/ev_root_ca_metadata.cc @@ -316,7 +316,7 @@ const EVRootCAMetadata::PolicyOID EVRootCAMetadata::policy_oids_[] = { static base::LazyInstance<EVRootCAMetadata, base::LeakyLazyInstanceTraits<EVRootCAMetadata> > - g_ev_root_ca_metadata(base::LINKER_INITIALIZED); + g_ev_root_ca_metadata = LAZY_INSTANCE_INITIALIZER; // static EVRootCAMetadata* EVRootCAMetadata::GetInstance() { diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc index 60dd125..3ba095d 100644 --- a/net/base/mime_util.cc +++ b/net/base/mime_util.cc @@ -78,7 +78,7 @@ class MimeUtil : public PlatformMimeUtil { StrictMappings strict_format_map_; }; // class MimeUtil -static base::LazyInstance<MimeUtil> g_mime_util(base::LINKER_INITIALIZED); +static base::LazyInstance<MimeUtil> g_mime_util = LAZY_INSTANCE_INITIALIZER; struct MimeInfo { const char* mime_type; diff --git a/net/base/net_util.cc b/net/base/net_util.cc index 53206dc..204e768 100644 --- a/net/base/net_util.cc +++ b/net/base/net_util.cc @@ -493,7 +493,7 @@ void SetExemplarSetForLang(const std::string& lang, static base::LazyInstance<base::Lock, base::LeakyLazyInstanceTraits<base::Lock> > - g_lang_set_lock(base::LINKER_INITIALIZED); + g_lang_set_lock = LAZY_INSTANCE_INITIALIZER; // Returns true if all the characters in component_characters are used by // the language |lang|. @@ -1119,7 +1119,7 @@ const FormatUrlType kFormatUrlOmitAll = kFormatUrlOmitUsernamePassword | static base::LazyInstance<std::multiset<int>, base::LeakyLazyInstanceTraits<std::multiset<int> > > - g_explicitly_allowed_ports(base::LINKER_INITIALIZED); + g_explicitly_allowed_ports = LAZY_INSTANCE_INITIALIZER; size_t GetCountOfExplicitlyAllowedPorts() { return g_explicitly_allowed_ports.Get().size(); diff --git a/net/base/ssl_config_service.cc b/net/base/ssl_config_service.cc index 40f75c8..7f9de16 100644 --- a/net/base/ssl_config_service.cc +++ b/net/base/ssl_config_service.cc @@ -64,7 +64,7 @@ static bool g_false_start_enabled = true; static bool g_dns_cert_provenance_checking = false; base::LazyInstance<scoped_refptr<CRLSet>, base::LeakyLazyInstanceTraits<scoped_refptr<CRLSet> > > - g_crl_set(base::LINKER_INITIALIZED); + g_crl_set = LAZY_INSTANCE_INITIALIZER; // static void SSLConfigService::DisableFalseStart() { diff --git a/net/base/test_root_certs.cc b/net/base/test_root_certs.cc index 6d4bc18..6eaf0e7 100644 --- a/net/base/test_root_certs.cc +++ b/net/base/test_root_certs.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,7 +19,7 @@ bool g_has_instance = false; base::LazyInstance<TestRootCerts, base::LeakyLazyInstanceTraits<TestRootCerts> > - g_test_root_certs(base::LINKER_INITIALIZED); + g_test_root_certs = LAZY_INSTANCE_INITIALIZER; CertificateList LoadCertificates(const FilePath& filename) { std::string raw_cert; diff --git a/net/base/test_root_certs_win.cc b/net/base/test_root_certs_win.cc index 961c7d3..65be843 100644 --- a/net/base/test_root_certs_win.cc +++ b/net/base/test_root_certs_win.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -91,7 +91,7 @@ struct CryptoAPIInjector { base::LazyInstance<CryptoAPIInjector, base::LeakyLazyInstanceTraits<CryptoAPIInjector> > - g_capi_injector(base::LINKER_INITIALIZED); + g_capi_injector = LAZY_INSTANCE_INITIALIZER; BOOL WINAPI InterceptedOpenStoreW(LPCSTR store_provider, DWORD encoding, diff --git a/net/base/winsock_init.cc b/net/base/winsock_init.cc index 41810ef..e760185 100644 --- a/net/base/winsock_init.cc +++ b/net/base/winsock_init.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -37,8 +37,8 @@ class WinsockInitSingleton { } }; -static base::LazyInstance<WinsockInitSingleton> g_winsock_init_singleton( - base::LINKER_INITIALIZED); +static base::LazyInstance<WinsockInitSingleton> g_winsock_init_singleton = + LAZY_INSTANCE_INITIALIZER; } // namespace diff --git a/net/base/x509_certificate.cc b/net/base/x509_certificate.cc index 10e7f0a..efb19ee 100644 --- a/net/base/x509_certificate.cc +++ b/net/base/x509_certificate.cc @@ -112,7 +112,7 @@ class X509CertificateCache { base::LazyInstance<X509CertificateCache, base::LeakyLazyInstanceTraits<X509CertificateCache> > - g_x509_certificate_cache(base::LINKER_INITIALIZED); + g_x509_certificate_cache = LAZY_INSTANCE_INITIALIZER; void X509CertificateCache::InsertOrUpdate( X509Certificate::OSCertHandle* cert_handle) { diff --git a/net/base/x509_certificate_win.cc b/net/base/x509_certificate_win.cc index 1c89abb..7309021 100644 --- a/net/base/x509_certificate_win.cc +++ b/net/base/x509_certificate_win.cc @@ -720,7 +720,7 @@ class GlobalCertStore { static base::LazyInstance<GlobalCertStore, base::LeakyLazyInstanceTraits<GlobalCertStore> > - g_cert_store(base::LINKER_INITIALIZED); + g_cert_store = LAZY_INSTANCE_INITIALIZER; // static HCERTSTORE X509Certificate::cert_store() { diff --git a/net/disk_cache/file_win.cc b/net/disk_cache/file_win.cc index 0b9468c..d12f82c8 100644 --- a/net/disk_cache/file_win.cc +++ b/net/disk_cache/file_win.cc @@ -34,8 +34,8 @@ class CompletionHandler : public MessageLoopForIO::IOHandler { DWORD actual_bytes, DWORD error); }; -static base::LazyInstance<CompletionHandler> g_completion_handler( - base::LINKER_INITIALIZED); +static base::LazyInstance<CompletionHandler> g_completion_handler = + LAZY_INSTANCE_INITIALIZER; void CompletionHandler::OnIOCompleted(MessageLoopForIO::IOContext* context, DWORD actual_bytes, DWORD error) { diff --git a/net/ocsp/nss_ocsp.cc b/net/ocsp/nss_ocsp.cc index ec24107..8578972 100644 --- a/net/ocsp/nss_ocsp.cc +++ b/net/ocsp/nss_ocsp.cc @@ -86,7 +86,7 @@ class OCSPIOLoop { }; base::LazyInstance<OCSPIOLoop, base::LeakyLazyInstanceTraits<OCSPIOLoop> > - g_ocsp_io_loop(base::LINKER_INITIALIZED); + g_ocsp_io_loop = LAZY_INSTANCE_INITIALIZER; const int kRecvBufferSize = 4096; @@ -136,8 +136,8 @@ class OCSPNSSInitialization { DISALLOW_COPY_AND_ASSIGN(OCSPNSSInitialization); }; -base::LazyInstance<OCSPNSSInitialization> g_ocsp_nss_initialization( - base::LINKER_INITIALIZED); +base::LazyInstance<OCSPNSSInitialization> g_ocsp_nss_initialization = + LAZY_INSTANCE_INITIALIZER; // Concrete class for SEC_HTTP_REQUEST_SESSION. // Public methods except virtual methods of net::URLRequest::Delegate diff --git a/net/proxy/dhcpcsvc_init_win.cc b/net/proxy/dhcpcsvc_init_win.cc index 3a0aa02..7e32aea 100644 --- a/net/proxy/dhcpcsvc_init_win.cc +++ b/net/proxy/dhcpcsvc_init_win.cc @@ -26,8 +26,8 @@ class DhcpcsvcInitSingleton { } }; -static base::LazyInstance<DhcpcsvcInitSingleton> g_dhcpcsvc_init_singleton( - base::LINKER_INITIALIZED); +static base::LazyInstance<DhcpcsvcInitSingleton> g_dhcpcsvc_init_singleton = + LAZY_INSTANCE_INITIALIZER; } // namespace diff --git a/net/socket/client_socket_factory.cc b/net/socket/client_socket_factory.cc index 227a801..dd7746d 100644 --- a/net/socket/client_socket_factory.cc +++ b/net/socket/client_socket_factory.cc @@ -123,7 +123,7 @@ class DefaultClientSocketFactory : public ClientSocketFactory, }; static base::LazyInstance<DefaultClientSocketFactory> - g_default_client_socket_factory(base::LINKER_INITIALIZED); + g_default_client_socket_factory = LAZY_INSTANCE_INITIALIZER; } // namespace diff --git a/net/socket/dns_cert_provenance_checker.cc b/net/socket/dns_cert_provenance_checker.cc index 04cbce8..b05a382 100644 --- a/net/socket/dns_cert_provenance_checker.cc +++ b/net/socket/dns_cert_provenance_checker.cc @@ -81,8 +81,8 @@ class DnsCertLimits { DISALLOW_COPY_AND_ASSIGN(DnsCertLimits); }; -static base::LazyInstance<DnsCertLimits> g_dns_cert_limits( - base::LINKER_INITIALIZED); +static base::LazyInstance<DnsCertLimits> g_dns_cert_limits = + LAZY_INSTANCE_INITIALIZER; // DnsCertProvenanceCheck performs the DNS lookup of the certificate. This // class is self-deleting. diff --git a/net/socket/nss_ssl_util.cc b/net/socket/nss_ssl_util.cc index 30cbcbf..f4dc8be 100644 --- a/net/socket/nss_ssl_util.cc +++ b/net/socket/nss_ssl_util.cc @@ -69,8 +69,8 @@ class NSSSSLInitSingleton { } }; -static base::LazyInstance<NSSSSLInitSingleton> g_nss_ssl_init_singleton( - base::LINKER_INITIALIZED); +static base::LazyInstance<NSSSSLInitSingleton> g_nss_ssl_init_singleton = + LAZY_INSTANCE_INITIALIZER; // Initialize the NSS SSL library if it isn't already initialized. This must // be called before any other NSS SSL functions. This function is diff --git a/net/socket/ssl_client_socket_mac.cc b/net/socket/ssl_client_socket_mac.cc index 527cad5..6f87260 100644 --- a/net/socket/ssl_client_socket_mac.cc +++ b/net/socket/ssl_client_socket_mac.cc @@ -486,8 +486,8 @@ class EnabledCipherSuites { DISALLOW_COPY_AND_ASSIGN(EnabledCipherSuites); }; -static base::LazyInstance<EnabledCipherSuites> g_enabled_cipher_suites( - base::LINKER_INITIALIZED); +static base::LazyInstance<EnabledCipherSuites> g_enabled_cipher_suites = + LAZY_INSTANCE_INITIALIZER; EnabledCipherSuites::EnabledCipherSuites() { SSLContextRef ssl_context; diff --git a/net/socket/ssl_client_socket_win.cc b/net/socket/ssl_client_socket_win.cc index 138265a..30441ce 100644 --- a/net/socket/ssl_client_socket_win.cc +++ b/net/socket/ssl_client_socket_win.cc @@ -196,8 +196,8 @@ class CredHandleTable { CredHandleMap client_cert_creds_; }; -static base::LazyInstance<CredHandleTable> g_cred_handle_table( - base::LINKER_INITIALIZED); +static base::LazyInstance<CredHandleTable> g_cred_handle_table = + LAZY_INSTANCE_INITIALIZER; // static int CredHandleTable::InitializeHandle(CredHandle* handle, @@ -368,8 +368,8 @@ class ClientCertStore { HCERTSTORE store_; }; -static base::LazyInstance<ClientCertStore> g_client_cert_store( - base::LINKER_INITIALIZED); +static base::LazyInstance<ClientCertStore> g_client_cert_store = + LAZY_INSTANCE_INITIALIZER; //----------------------------------------------------------------------------- diff --git a/net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp b/net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp index 20768f0..7781bf7 100644 --- a/net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp +++ b/net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp @@ -321,8 +321,8 @@ class PKCS12InitSingleton { } }; -static base::LazyInstance<PKCS12InitSingleton> g_pkcs12_init_singleton( - base::LINKER_INITIALIZED); +static base::LazyInstance<PKCS12InitSingleton> g_pkcs12_init_singleton = + LAZY_INSTANCE_INITIALIZER; } // namespace diff --git a/net/tools/fetch/fetch_client.cc b/net/tools/fetch/fetch_client.cc index fc22bdc..310fe87 100644 --- a/net/tools/fetch/fetch_client.cc +++ b/net/tools/fetch/fetch_client.cc @@ -49,7 +49,7 @@ class Driver { int clients_; }; -static base::LazyInstance<Driver> g_driver(base::LINKER_INITIALIZED); +static base::LazyInstance<Driver> g_driver = LAZY_INSTANCE_INITIALIZER; // A network client class Client { diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc index 66d629b..9fcae42 100644 --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc @@ -58,7 +58,7 @@ uint64 g_next_url_request_identifier = 1; // This lock protects g_next_url_request_identifier. base::LazyInstance<base::Lock, base::LeakyLazyInstanceTraits<base::Lock> > - g_next_url_request_identifier_lock(base::LINKER_INITIALIZED); + g_next_url_request_identifier_lock = LAZY_INSTANCE_INITIALIZER; // Returns an prior unused identifier for URL requests. uint64 GenerateURLRequestIdentifier() { diff --git a/net/url_request/url_request_test_job.cc b/net/url_request/url_request_test_job.cc index 1df6f63..6668b03 100644 --- a/net/url_request/url_request_test_job.cc +++ b/net/url_request/url_request_test_job.cc @@ -23,7 +23,7 @@ namespace { typedef std::list<URLRequestTestJob*> URLRequestJobList; base::LazyInstance<URLRequestJobList, base::LeakyLazyInstanceTraits<URLRequestJobList> > - g_pending_jobs(base::LINKER_INITIALIZED); + g_pending_jobs = LAZY_INSTANCE_INITIALIZER; } // namespace diff --git a/net/websockets/websocket_job.cc b/net/websockets/websocket_job.cc index 4c64496..6a5df55 100644 --- a/net/websockets/websocket_job.cc +++ b/net/websockets/websocket_job.cc @@ -53,8 +53,8 @@ class WebSocketJobInitSingleton { } }; -static base::LazyInstance<WebSocketJobInitSingleton> g_websocket_job_init( - base::LINKER_INITIALIZED); +static base::LazyInstance<WebSocketJobInitSingleton> g_websocket_job_init = + LAZY_INSTANCE_INITIALIZER; } // anonymous namespace |