summaryrefslogtreecommitdiff
path: root/reclaim.c
diff options
context:
space:
mode:
authorhboehm <hboehm>2008-11-08 00:29:55 +0000
committerIvan Maidanski <ivmai@mail.ru>2011-07-26 21:06:44 +0400
commit9823a3a516cd41b266c1fd3291787b3fc0d243a8 (patch)
tree486d9220921ce4c814ccfb0f032ab0e538dd97df /reclaim.c
parent509a93c07c5df62dd966b2d8c524ff93e71c282f (diff)
downloadbdwgc-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 'reclaim.c')
-rw-r--r--reclaim.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/reclaim.c b/reclaim.c
index 13db28d8..b77170b8 100644
--- a/reclaim.c
+++ b/reclaim.c
@@ -341,8 +341,8 @@ STATIC int GC_n_set_marks(hdr *hhdr)
int result = 0;
int i;
size_t sz = hhdr -> hb_sz;
- int offset = MARK_BIT_OFFSET(sz);
- int limit = FINAL_MARK_BIT(sz);
+ int offset = (int)MARK_BIT_OFFSET(sz);
+ int limit = (int)FINAL_MARK_BIT(sz);
for (i = 0; i < limit; i += offset) {
result += hhdr -> hb_marks[i];
@@ -373,7 +373,7 @@ STATIC int GC_n_set_marks(hdr *hhdr)
int i;
int n_mark_words;
# ifdef MARK_BIT_PER_OBJ
- int n_objs = HBLK_OBJS(hhdr -> hb_sz);
+ int n_objs = (int)HBLK_OBJS(hhdr -> hb_sz);
if (0 == n_objs) n_objs = 1;
n_mark_words = divWORDSZ(n_objs + WORDSZ - 1);