summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-04 18:56:05 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-04 18:56:05 +0000
commitb6a9c04f3a001161f90c68dd27ac849b4b03392b (patch)
tree040ddcf54f290b64d38bf23532b4959531a09374 /ui
parent687c42c03483c131935203dc96a3be106f89a66b (diff)
downloadchromium_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.cc4
-rw-r--r--ui/base/text/text_elider.cc10
-rw-r--r--ui/gfx/gl/gl_context.cc12
-rw-r--r--ui/gfx/gl/gl_surface.cc12
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) {