Jacek Caban : urlmon: Use TLS_OUT_OF_INDEXES as invalid TLS value.
Alexandre Julliard
julliard at winehq.org
Mon May 25 10:06:31 CDT 2009
Module: wine
Branch: master
Commit: 08d8a5ea259cd93f3f0fae3d467cd4524b550abd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=08d8a5ea259cd93f3f0fae3d467cd4524b550abd
Author: Jacek Caban <jacek at codeweavers.com>
Date: Sun May 24 23:16:21 2009 +0200
urlmon: Use TLS_OUT_OF_INDEXES as invalid TLS value.
---
dlls/urlmon/urlmon_main.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c
index 3203753..6e51db5 100644
--- a/dlls/urlmon/urlmon_main.c
+++ b/dlls/urlmon/urlmon_main.c
@@ -36,7 +36,7 @@ LONG URLMON_refCount = 0;
HINSTANCE URLMON_hInstance = 0;
static HMODULE hCabinet = NULL;
-static DWORD urlmon_tls;
+static DWORD urlmon_tls = TLS_OUT_OF_INDEXES;
static void init_session(BOOL);
@@ -56,9 +56,12 @@ tls_data_t *get_tls_data(void)
{
tls_data_t *data;
- if(!urlmon_tls) {
+ if(urlmon_tls == TLS_OUT_OF_INDEXES) {
DWORD tls = TlsAlloc();
- tls = InterlockedCompareExchange((LONG*)&urlmon_tls, tls, 0);
+ if(tls == TLS_OUT_OF_INDEXES)
+ return NULL;
+
+ tls = InterlockedCompareExchange((LONG*)&urlmon_tls, tls, TLS_OUT_OF_INDEXES);
if(tls != urlmon_tls)
TlsFree(tls);
}
@@ -83,7 +86,7 @@ static void free_tls_list(void)
{
tls_data_t *data;
- if(!urlmon_tls)
+ if(urlmon_tls == TLS_OUT_OF_INDEXES)
return;
while(!list_empty(&tls_list)) {
@@ -99,7 +102,7 @@ static void detach_thread(void)
{
tls_data_t *data;
- if(!urlmon_tls)
+ if(urlmon_tls == TLS_OUT_OF_INDEXES)
return;
data = TlsGetValue(urlmon_tls);
More information about the wine-cvs
mailing list