diff options
author | hboehm <hboehm> | 2008-11-08 00:29:55 +0000 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2011-07-26 21:06:44 +0400 |
commit | 9823a3a516cd41b266c1fd3291787b3fc0d243a8 (patch) | |
tree | 486d9220921ce4c814ccfb0f032ab0e538dd97df /thread_local_alloc.c | |
parent | 509a93c07c5df62dd966b2d8c524ff93e71c282f (diff) | |
download | bdwgc-9823a3a516cd41b266c1fd3291787b3fc0d243a8.tar.gz |
2008-11-07 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
(Mostly improves LLP64 support.)
* backgraph.c, checksums.c, dbg_mlc.c, finalize.c, mark.c,
misc.c, reclaim.c: Changed some int and long type to word or size_t
(and vice versa where appropriate)
* gcj_mlc.c, include/private/dbg_mlc.h, include/private/gcconfig.h,
include/private/thread_local_alloc.h, mark.c,
misc.c, thread_local_alloc.c, win32_threads.c: Added intermediate
casts to word type when casting from int to pointer (or pointer
to int, or data pointer to code pointer) - just to remove the
corresponding compiler warning.
* ptr_chck.c (GC_is_visible): cast int const to word type to
prevent left shift overflow.
* os_dep.c: change the type of GC_mem_top_down global var
(containing a flag) to DWORD.
* include/gc_config_macros.h: define GC_SOLARIS_THREADS if GC_THREADS
is defined on SunOS x86_64.
* misc.c (GC_init_size_map): Ifdef out GC_ASSERT as a workaround
for VC++ 2008 amd64 (v15.00.21022.08 for x64) compiler bug
(the compiler gets hung if invoked with -Ox -D
ALL_INTERIOR_POINTERS -D GC_ASSERTIONS)
* backgraph.c: cast GC_gc_no value to unsigned short when
assigned/compared to height_gc_no field of back_edges.
* os_dep.c (GC_remove_protection): Add ARGSUSED.
* win32_threads.c (GC_thread_exit_proc): Remove unused local var.
* mark.c (GC_check_dirty): Move declaration out of func body.
Diffstat (limited to 'thread_local_alloc.c')
-rw-r--r-- | thread_local_alloc.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/thread_local_alloc.c b/thread_local_alloc.c index a423ce33..85865722 100644 --- a/thread_local_alloc.c +++ b/thread_local_alloc.c @@ -88,18 +88,18 @@ void GC_init_thread_local(GC_tlfs p) ABORT("Failed to set thread specific allocation pointers"); } for (i = 1; i < TINY_FREELISTS; ++i) { - p -> ptrfree_freelists[i] = (void *)1; - p -> normal_freelists[i] = (void *)1; + p -> ptrfree_freelists[i] = (void *)(word)1; + p -> normal_freelists[i] = (void *)(word)1; # ifdef GC_GCJ_SUPPORT - p -> gcj_freelists[i] = (void *)1; + p -> gcj_freelists[i] = (void *)(word)1; # endif } /* Set up the size 0 free lists. */ /* We now handle most of them like regular free lists, to ensure */ /* That explicit deallocation works. However, allocation of a */ /* size 0 "gcj" object is always an error. */ - p -> ptrfree_freelists[0] = (void *)1; - p -> normal_freelists[0] = (void *)1; + p -> ptrfree_freelists[0] = (void *)(word)1; + p -> normal_freelists[0] = (void *)(word)1; # ifdef GC_GCJ_SUPPORT p -> gcj_freelists[0] = ERROR_FL; # endif |