diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2006-11-07 22:59:31 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2006-11-07 22:59:31 +0000 |
commit | 2a9b4a0cce09a1bccb092ddc9fb98532ec8b720f (patch) | |
tree | d89ccfd8639aaf3a0ece7ac6ccff0b345ba757c7 /linuxthreads | |
parent | 5464a78aac33302c987c3dab8463f53c3c1dd7df (diff) | |
download | eglibc2-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/ChangeLog | 12 | ||||
-rw-r--r-- | linuxthreads/linuxthreads/specific.c | 3 | ||||
-rw-r--r-- | linuxthreads/linuxthreads/sysdeps/ia64/tcb-offsets.sym | 2 |
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 |