summaryrefslogtreecommitdiffstats
path: root/base/thread_local_storage_win.cc
diff options
context:
space:
mode:
authormaruel@google.com <maruel@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-06 20:35:17 +0000
committermaruel@google.com <maruel@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-06 20:35:17 +0000
commitc9046afea46a4b8252392adced73f3d2a9fb354e (patch)
treec557a80884a379eecf170e3cf88acee77bc4d837 /base/thread_local_storage_win.cc
parenta4930c88e7fb14ba66340cbe393fcdf4c668e41c (diff)
downloadchromium_src-c9046afea46a4b8252392adced73f3d2a9fb354e.zip
chromium_src-c9046afea46a4b8252392adced73f3d2a9fb354e.tar.gz
chromium_src-c9046afea46a4b8252392adced73f3d2a9fb354e.tar.bz2
Fix base::DIR_SOURCE_ROOT path calculation.
Add missing header files to base.vcproj. Fix thread local storage implicit destructor call on Windows x64. Fix build compilation issues in x64 with third party headers. Fix Pickle for x64, the header doesn't need to be size_t, uint32 ought to be sufficient for the object. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@450 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/thread_local_storage_win.cc')
-rw-r--r--base/thread_local_storage_win.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/base/thread_local_storage_win.cc b/base/thread_local_storage_win.cc
index 4d56b08..fc38323 100644
--- a/base/thread_local_storage_win.cc
+++ b/base/thread_local_storage_win.cc
@@ -181,6 +181,10 @@ void NTAPI OnThreadExit(PVOID module, DWORD reason, PVOID reserved)
// .CRT section is merged with .rdata on x64 so it must be constant data.
#pragma const_seg(".CRT$XLB")
+// When defining a const variable, it must have external linkage to be sure the
+// linker doesn't discard it. If this value is discarded, the OnThreadExit
+// function will never be called.
+extern const PIMAGE_TLS_CALLBACK p_thread_callback;
const PIMAGE_TLS_CALLBACK p_thread_callback = OnThreadExit;
// Reset the default section.