summaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2006-11-07 22:59:31 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2006-11-07 22:59:31 +0000
commit2a9b4a0cce09a1bccb092ddc9fb98532ec8b720f (patch)
treed89ccfd8639aaf3a0ece7ac6ccff0b345ba757c7 /linuxthreads
parent5464a78aac33302c987c3dab8463f53c3c1dd7df (diff)
downloadeglibc2-2a9b4a0cce09a1bccb092ddc9fb98532ec8b720f.tar.gz
Merge changes between r426 and r615 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@616 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/linuxthreads/ChangeLog12
-rw-r--r--linuxthreads/linuxthreads/specific.c3
-rw-r--r--linuxthreads/linuxthreads/sysdeps/ia64/tcb-offsets.sym2
3 files changed, 14 insertions, 3 deletions
diff --git a/linuxthreads/linuxthreads/ChangeLog b/linuxthreads/linuxthreads/ChangeLog
index 6e6ae6067..4dab05257 100644
--- a/linuxthreads/linuxthreads/ChangeLog
+++ b/linuxthreads/linuxthreads/ChangeLog
@@ -1,4 +1,14 @@
-2H2006-10-03 Richard Sandiford <richard@codesourcery.com>
+2006-10-31 Ian Lance Taylor <ian@airs.com>
+
+ * specific.c (__pthread_destroy_specifics): Clear pointer before
+ freeing.
+
+2006-10-31 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Fix typo
+ TLS_PRE_TCB_SIZE.
+
+2006-10-03 Richard Sandiford <richard@codesourcery.com>
* sysdeps/m68k/pt-machine.h (__compare_and_swap): Don't define for
Coldfire.
diff --git a/linuxthreads/linuxthreads/specific.c b/linuxthreads/linuxthreads/specific.c
index d23c4fd7c..764bf1e95 100644
--- a/linuxthreads/linuxthreads/specific.c
+++ b/linuxthreads/linuxthreads/specific.c
@@ -204,8 +204,9 @@ void __pthread_destroy_specifics()
__pthread_lock(THREAD_GETMEM(self, p_lock), self);
for (i = 0; i < PTHREAD_KEY_1STLEVEL_SIZE; i++) {
if (THREAD_GETMEM_NC(self, p_specific[i]) != NULL) {
- free(THREAD_GETMEM_NC(self, p_specific[i]));
+ void *p = THREAD_GETMEM_NC(self, p_specific[i]);
THREAD_SETMEM_NC(self, p_specific[i], NULL);
+ free(p);
}
}
__pthread_unlock(THREAD_GETMEM(self, p_lock));
diff --git a/linuxthreads/linuxthreads/sysdeps/ia64/tcb-offsets.sym b/linuxthreads/linuxthreads/sysdeps/ia64/tcb-offsets.sym
index 507782939..c77c82f18 100644
--- a/linuxthreads/linuxthreads/sysdeps/ia64/tcb-offsets.sym
+++ b/linuxthreads/linuxthreads/sysdeps/ia64/tcb-offsets.sym
@@ -3,7 +3,7 @@
--
#ifdef USE_TLS
-MULTIPLE_THREADS_OFFSET offsetof (struct _pthread_descr_struct, p_multiple_threads) - TCB_PRE_SIZE
+MULTIPLE_THREADS_OFFSET offsetof (struct _pthread_descr_struct, p_multiple_threads) - TLS_PRE_TCB_SIZE
#else
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
#endif