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 /chrome/browser/extensions | |
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 'chrome/browser/extensions')
-rw-r--r-- | chrome/browser/extensions/crx_installer.cc | 2 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_omnibox_api.cc | 3 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_webnavigation_api.cc | 4 |
3 files changed, 5 insertions, 4 deletions
diff --git a/chrome/browser/extensions/crx_installer.cc b/chrome/browser/extensions/crx_installer.cc index c650daa..934bfd7 100644 --- a/chrome/browser/extensions/crx_installer.cc +++ b/chrome/browser/extensions/crx_installer.cc @@ -53,7 +53,7 @@ struct Whitelist { }; static base::LazyInstance<Whitelist> - g_whitelisted_install_data(base::LINKER_INITIALIZED); + g_whitelisted_install_data = LAZY_INSTANCE_INITIALIZER; } // namespace diff --git a/chrome/browser/extensions/extension_omnibox_api.cc b/chrome/browser/extensions/extension_omnibox_api.cc index 1590927b..300333e 100644 --- a/chrome/browser/extensions/extension_omnibox_api.cc +++ b/chrome/browser/extensions/extension_omnibox_api.cc @@ -41,7 +41,8 @@ const char kDescriptionStylesOffset[] = "offset"; const char kDescriptionStylesLength[] = "length"; static base::LazyInstance<PropertyAccessor<ExtensionOmniboxSuggestion> > - g_extension_omnibox_suggestion_property_accessor(base::LINKER_INITIALIZED); + g_extension_omnibox_suggestion_property_accessor = + LAZY_INSTANCE_INITIALIZER; PropertyAccessor<ExtensionOmniboxSuggestion>& GetPropertyAccessor() { return g_extension_omnibox_suggestion_property_accessor.Get(); diff --git a/chrome/browser/extensions/extension_webnavigation_api.cc b/chrome/browser/extensions/extension_webnavigation_api.cc index 0cc2d01..d80b898 100644 --- a/chrome/browser/extensions/extension_webnavigation_api.cc +++ b/chrome/browser/extensions/extension_webnavigation_api.cc @@ -29,8 +29,8 @@ namespace { typedef std::map<TabContents*, ExtensionWebNavigationTabObserver*> TabObserverMap; -static base::LazyInstance<TabObserverMap> g_tab_observer( - base::LINKER_INITIALIZED); +static base::LazyInstance<TabObserverMap> g_tab_observer = + LAZY_INSTANCE_INITIALIZER; // URL schemes for which we'll send events. const char* kValidSchemes[] = { |