Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Sutcliffe <ir0nh34d@users.sourceforge.net>2011-08-24 02:27:35 +0400
committerChris Sutcliffe <ir0nh34d@users.sourceforge.net>2011-08-24 02:27:35 +0400
commit99724a32581298eb728c285f42f3a709b24c68ed (patch)
tree425f07bcd9093fc211ded8d1035ba8d063a599f8
parent58ef30a4e7b8409a5a225e2a82a93cbbdd19216d (diff)
2011-08-23 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* tlsmthread.c: Update to reflect changes in tlssup.c. * tlssup.c: code clean-up.
-rw-r--r--winsup/mingw/ChangeLog5
-rw-r--r--winsup/mingw/tlsmthread.c31
-rw-r--r--winsup/mingw/tlssup.c21
3 files changed, 16 insertions, 41 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog
index a320112f4..2db855404 100644
--- a/winsup/mingw/ChangeLog
+++ b/winsup/mingw/ChangeLog
@@ -1,3 +1,8 @@
+2011-08-23 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
+
+ * tlsmthread.c: Update to reflect changes in tlssup.c.
+ * tlssup.c: code clean-up.
+
2011-08-20 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/_mingw.h: Increment version to 3.19.
diff --git a/winsup/mingw/tlsmthread.c b/winsup/mingw/tlsmthread.c
index f30e70137..b554eda9e 100644
--- a/winsup/mingw/tlsmthread.c
+++ b/winsup/mingw/tlsmthread.c
@@ -17,43 +17,16 @@ int __mingwthr_remove_key_dtor (DWORD key);
extern int ___w64_mingwthr_remove_key_dtor (DWORD key);
extern int ___w64_mingwthr_add_key_dtor (DWORD key, void (*dtor)(void *));
-
-#ifndef _WIN64
-#define MINGWM10_DLL "mingwm10.dll"
-typedef int (*fMTRemoveKeyDtor)(DWORD key);
-typedef int (*fMTKeyDtor)(DWORD key, void (*dtor)(void *));
-extern fMTRemoveKeyDtor __mingw_gMTRemoveKeyDtor;
-extern fMTKeyDtor __mingw_gMTKeyDtor;
-extern int __mingw_usemthread_dll;
-#endif
-
int
__mingwthr_remove_key_dtor (DWORD key)
{
-#ifndef _WIN64
- if (!__mingw_usemthread_dll)
-#endif
- return ___w64_mingwthr_remove_key_dtor (key);
-#ifndef _WIN64
- if (__mingw_gMTRemoveKeyDtor)
- return (*__mingw_gMTRemoveKeyDtor) (key);
- return 0;
-#endif
+ return ___w64_mingwthr_remove_key_dtor (key);
}
int
__mingwthr_key_dtor (DWORD key, void (*dtor)(void *))
{
if (dtor)
- {
-#ifndef _WIN64
- if (!__mingw_usemthread_dll)
-#endif
- return ___w64_mingwthr_add_key_dtor (key, dtor);
-#ifndef _WIN64
- if (__mingw_gMTKeyDtor)
- return (*__mingw_gMTKeyDtor) (key, dtor);
-#endif
- }
+ return ___w64_mingwthr_add_key_dtor (key, dtor);
return 0;
}
diff --git a/winsup/mingw/tlssup.c b/winsup/mingw/tlssup.c
index 2d301659b..e1685f5fc 100644
--- a/winsup/mingw/tlssup.c
+++ b/winsup/mingw/tlssup.c
@@ -60,9 +60,9 @@ _CRTALLOC(".tls") const IMAGE_TLS_DIRECTORY _tls_used = {
#ifndef __CRT_THREAD
#ifdef HAVE_ATTRIBUTE_THREAD
-#define __CRT_THREAD __declspec(thread)
+#define __CRT_THREAD __declspec(thread)
#else
-#define __CRT_THREAD __thread
+#define __CRT_THREAD __thread
#endif
#endif
@@ -84,7 +84,6 @@ BOOL WINAPI
__dyn_tls_init (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
{
_PVFV *pfunc;
- int nfuncs, ifunc;
/* We don't let us trick here. */
if (_CRT_MT != 2)
@@ -97,10 +96,8 @@ __dyn_tls_init (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
return TRUE;
}
- nfuncs = &__xd_z - (&__xd_a + 1);
- for (ifunc = 0; ifunc < nfuncs; ++ifunc)
+ for (pfunc = &__xd_a + 1; pfunc != &__xd_z; ++pfunc)
{
- pfunc = (&__xd_a + 1) + ifunc;
if (*pfunc != NULL)
(*pfunc)();
}
@@ -127,7 +124,7 @@ __tlregdtor (_PVFV func)
{
TlsDtorNode *pnode = (TlsDtorNode *) malloc (sizeof (TlsDtorNode));
if (pnode == NULL)
- return -1;
+ return -1;
pnode->count = 0;
pnode->next = dtor_list;
dtor_list = pnode;
@@ -160,13 +157,13 @@ __dyn_tls_dtor (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
for (pnode = dtor_list; pnode != NULL; pnode = pnext)
{
for (i = pnode->count - 1; i >= 0; --i)
- {
- if (pnode->funcs[i] != NULL)
- (*pnode->funcs[i])();
- }
+ {
+ if (pnode->funcs[i] != NULL)
+ (*pnode->funcs[i])();
+ }
pnext = pnode->next;
if (pnext != NULL)
- free ((void *) pnode);
+ free ((void *) pnode);
}
}
#endif