summaryrefslogtreecommitdiff
path: root/specific.c
diff options
context:
space:
mode:
Diffstat (limited to 'specific.c')
-rw-r--r--specific.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/specific.c b/specific.c
index f17d3254..624236fd 100644
--- a/specific.c
+++ b/specific.c
@@ -65,7 +65,7 @@ GC_INNER int GC_setspecific(tsd * key, void * value)
/* Could easily check for an existing entry here. */
entry -> next = key->hash[hash_val].p;
entry -> thread = self;
- entry -> value = value;
+ entry -> value = TS_HIDE_VALUE(value);
GC_ASSERT(entry -> qtid == INVALID_QTID);
/* There can only be one writer at a time, but this needs to be */
/* atomic with respect to concurrent readers. */
@@ -153,7 +153,7 @@ GC_INNER void * GC_slow_getspecific(tsd * key, word qtid,
*cache_ptr = entry;
/* Again this is safe since pointer assignments are */
/* presumed atomic, and either pointer is valid. */
- return entry -> value;
+ return TS_REVEAL_PTR(entry -> value);
}
#ifdef GC_ASSERTIONS