summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorjoth@chromium.org <joth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-15 13:31:49 +0000
committerjoth@chromium.org <joth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-15 13:31:49 +0000
commit6de0fd1d935e8c6c9257f1082dbd227acb1a06b1 (patch)
tree0ed5bc4ef9c2da0b498c30e562218f4528eaac9e /net
parent0f86c358fdb5e47aa9cd4a99b12da5e66507d080 (diff)
downloadchromium_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')
-rw-r--r--net/base/bandwidth_metrics.cc6
-rw-r--r--net/base/cert_database_nss_unittest.cc4
-rw-r--r--net/base/dns_reloader.cc2
-rw-r--r--net/base/ev_root_ca_metadata.cc2
-rw-r--r--net/base/mime_util.cc2
-rw-r--r--net/base/net_util.cc4
-rw-r--r--net/base/ssl_config_service.cc2
-rw-r--r--net/base/test_root_certs.cc4
-rw-r--r--net/base/test_root_certs_win.cc4
-rw-r--r--net/base/winsock_init.cc6
-rw-r--r--net/base/x509_certificate.cc2
-rw-r--r--net/base/x509_certificate_win.cc2
-rw-r--r--net/disk_cache/file_win.cc4
-rw-r--r--net/ocsp/nss_ocsp.cc6
-rw-r--r--net/proxy/dhcpcsvc_init_win.cc4
-rw-r--r--net/socket/client_socket_factory.cc2
-rw-r--r--net/socket/dns_cert_provenance_checker.cc4
-rw-r--r--net/socket/nss_ssl_util.cc4
-rw-r--r--net/socket/ssl_client_socket_mac.cc4
-rw-r--r--net/socket/ssl_client_socket_win.cc8
-rw-r--r--net/third_party/mozilla_security_manager/nsPKCS12Blob.cpp4
-rw-r--r--net/tools/fetch/fetch_client.cc2
-rw-r--r--net/url_request/url_request.cc2
-rw-r--r--net/url_request/url_request_test_job.cc2
-rw-r--r--net/websockets/websocket_job.cc4
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