diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-04 18:56:05 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-04 18:56:05 +0000 |
commit | b6a9c04f3a001161f90c68dd27ac849b4b03392b (patch) | |
tree | 040ddcf54f290b64d38bf23532b4959531a09374 /ui | |
parent | 687c42c03483c131935203dc96a3be106f89a66b (diff) | |
download | chromium_src-b6a9c04f3a001161f90c68dd27ac849b4b03392b.zip chromium_src-b6a9c04f3a001161f90c68dd27ac849b4b03392b.tar.gz chromium_src-b6a9c04f3a001161f90c68dd27ac849b4b03392b.tar.bz2 |
Remove the remaining 6 exit time destructors and 2 static initializers from ui/
BUG=101600,94925
TEST=none
Review URL: http://codereview.chromium.org/8475006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108688 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/base/l10n/l10n_util.cc | 4 | ||||
-rw-r--r-- | ui/base/text/text_elider.cc | 10 | ||||
-rw-r--r-- | ui/gfx/gl/gl_context.cc | 12 | ||||
-rw-r--r-- | ui/gfx/gl/gl_surface.cc | 12 |
4 files changed, 25 insertions, 13 deletions
diff --git a/ui/base/l10n/l10n_util.cc b/ui/base/l10n/l10n_util.cc index 2885a8f..e639c19 100644 --- a/ui/base/l10n/l10n_util.cc +++ b/ui/base/l10n/l10n_util.cc @@ -780,7 +780,9 @@ void SortStrings16(const std::string& locale, } const std::vector<std::string>& GetAvailableLocales() { - static std::vector<std::string> locales; + // Allocate this on the heap and leak it, so that no destructor needs to run + // at exit time. + static std::vector<std::string>& locales = *new std::vector<std::string>; if (locales.empty()) { int num_locales = uloc_countAvailable(); for (int i = 0; i < num_locales; ++i) { diff --git a/ui/base/text/text_elider.cc b/ui/base/text/text_elider.cc index 8461304..1fa38d4 100644 --- a/ui/base/text/text_elider.cc +++ b/ui/base/text/text_elider.cc @@ -58,8 +58,7 @@ string16 BuildPathFromComponents(const string16& path_prefix, const std::vector<string16>& path_elements, const string16& filename, size_t num_components) { - static const string16 kEllipsisAndSlash = UTF8ToUTF16(kEllipsis) + - kForwardSlash; + const string16 kEllipsisAndSlash = UTF8ToUTF16(kEllipsis) + kForwardSlash; // Add the initial elements of the path. string16 path = path_prefix; @@ -87,8 +86,7 @@ string16 ElideComponentizedPath(const string16& url_path_prefix, int available_pixel_width) { size_t url_path_number_of_elements = url_path_elements.size(); - static const string16 kEllipsisAndSlash = UTF8ToUTF16(kEllipsis) + - kForwardSlash; + const string16 kEllipsisAndSlash = UTF8ToUTF16(kEllipsis) + kForwardSlash; for (size_t i = url_path_number_of_elements - 1; i > 0; --i) { string16 elided_path = BuildPathFromComponents(url_path_prefix, @@ -165,7 +163,7 @@ string16 ElideUrl(const GURL& url, size_t domain_start_index = url_host.find(url_domain); if (domain_start_index > 0) url_subdomain = url_host.substr(0, domain_start_index); - static const string16 kWwwPrefix = UTF8ToUTF16("www."); + const string16 kWwwPrefix = UTF8ToUTF16("www."); if ((url_subdomain == kWwwPrefix || url_subdomain.empty() || url.SchemeIsFile())) { url_subdomain.clear(); @@ -183,7 +181,7 @@ string16 ElideUrl(const GURL& url, url_domain.clear(); url_subdomain.clear(); - static const string16 kColon = UTF8ToUTF16(":"); + const string16 kColon = UTF8ToUTF16(":"); url_host = url_domain = file_path_split.at(0).substr(1) + kColon; url_path_query_etc = url_path = file_path_split.at(1); } diff --git a/ui/gfx/gl/gl_context.cc b/ui/gfx/gl/gl_context.cc index 6053bdb..b4025d7 100644 --- a/ui/gfx/gl/gl_context.cc +++ b/ui/gfx/gl/gl_context.cc @@ -5,6 +5,7 @@ #include <string> #include "base/command_line.h" +#include "base/lazy_instance.h" #include "base/logging.h" #include "base/threading/thread_local.h" #include "ui/gfx/gl/gl_context.h" @@ -15,7 +16,12 @@ namespace gfx { -static base::ThreadLocalPointer<GLContext> current_context_; +namespace { +base::LazyInstance< + base::ThreadLocalPointer<GLContext>, + base::LeakyLazyInstanceTraits<base::ThreadLocalPointer<GLContext> > > + current_context_(base::LINKER_INITIALIZED); +} // namespace GLContext::GLContext(GLShareGroup* share_group) : share_group_(share_group) { if (!share_group_.get()) @@ -69,11 +75,11 @@ bool GLContext::LosesAllContextsOnContextLost() } GLContext* GLContext::GetCurrent() { - return current_context_.Get(); + return current_context_.Pointer()->Get(); } void GLContext::SetCurrent(GLContext* context, GLSurface* surface) { - current_context_.Set(context); + current_context_.Pointer()->Set(context); GLSurface::SetCurrent(surface); } diff --git a/ui/gfx/gl/gl_surface.cc b/ui/gfx/gl/gl_surface.cc index ed849c2..7ada5eb8 100644 --- a/ui/gfx/gl/gl_surface.cc +++ b/ui/gfx/gl/gl_surface.cc @@ -4,13 +4,19 @@ #include "ui/gfx/gl/gl_surface.h" +#include "base/lazy_instance.h" #include "base/logging.h" #include "base/threading/thread_local.h" #include "ui/gfx/gl/gl_context.h" namespace gfx { -static base::ThreadLocalPointer<GLSurface> current_surface_; +namespace { +base::LazyInstance< + base::ThreadLocalPointer<GLSurface>, + base::LeakyLazyInstanceTraits<base::ThreadLocalPointer<GLSurface> > > + current_surface_(base::LINKER_INITIALIZED); +} // namespace GLSurface::GLSurface() { } @@ -62,11 +68,11 @@ unsigned GLSurface::GetFormat() { } GLSurface* GLSurface::GetCurrent() { - return current_surface_.Get(); + return current_surface_.Pointer()->Get(); } void GLSurface::SetCurrent(GLSurface* surface) { - current_surface_.Set(surface); + current_surface_.Pointer()->Set(surface); } GLSurfaceAdapter::GLSurfaceAdapter(GLSurface* surface) : surface_(surface) { |