From b93465e3e59a7a5caebd11292cce08ce34f53877 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Sat, 21 Apr 2012 23:44:19 +0400 Subject: Code refactoring of specific.c and specific.h; cast pointers to word instead of unsigned long * include/private/specific.h (CACHE_HASH, HASH): Add parentheses around the argument. * include/private/specific.h (CACHE_HASH): Remove unnecessary cast to long. * include/private/specific.h (HASH): Rename "n" argument to "p"; cast "p" to word instead of long; cast result to unsigned. * include/private/specific.h (quick_thread_id, INVALID_QTID): Cast to word instead of unsigned long. * specific.c (GC_key_create_inner): Cast invalid_tse.next (pointer) to word instead of unsigned long. * include/private/specific.h (GC_slow_getspecific, GC_getspecific): Change type of "qtid" from unsigned long to word. * specific.c (GC_slow_getspecific): Likewise. * include/private/specific.h (GC_getspecific): Remove "hash_val" local variable. * specific.c: Do not include gc_priv.h as included from thread_local_alloc.h; do not include atomic_ops.h as included from specific.h file. --- specific.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'specific.c') diff --git a/specific.c b/specific.c index 5f4765df..e35c9b57 100644 --- a/specific.c +++ b/specific.c @@ -11,7 +11,6 @@ * modified is included with the above copyright notice. */ -#include "private/gc_priv.h" /* For configuration, pthreads.h. */ #include "private/thread_local_alloc.h" /* To determine type of tsd impl. */ /* Includes private/specific.h */ @@ -19,8 +18,6 @@ #if defined(USE_CUSTOM_SPECIFIC) -#include "atomic_ops.h" - static const tse invalid_tse = {INVALID_QTID, 0, 0, INVALID_THREADID}; /* A thread-specific data entry which will never */ /* appear valid to a reader. Used to fill in empty */ @@ -32,7 +29,7 @@ GC_INNER int GC_key_create_inner(tsd ** key_ptr) tsd * result = (tsd *)MALLOC_CLEAR(sizeof(tsd)); /* A quick alignment check, since we need atomic stores */ - GC_ASSERT((unsigned long)(&invalid_tse.next) % sizeof(tse *) == 0); + GC_ASSERT((word)(&invalid_tse.next) % sizeof(tse *) == 0); if (0 == result) return ENOMEM; pthread_mutex_init(&(result -> lock), NULL); for (i = 0; i < TS_CACHE_SIZE; ++i) { @@ -109,7 +106,7 @@ GC_INNER void GC_remove_specific(tsd * key) } /* Note that even the slow path doesn't lock. */ -GC_INNER void * GC_slow_getspecific(tsd * key, unsigned long qtid, +GC_INNER void * GC_slow_getspecific(tsd * key, word qtid, tse * volatile * cache_ptr) { pthread_t self = pthread_self(); -- cgit v1.2.1