From 88c7642c0af1b91a516e9de45040f3050a797228 Mon Sep 17 00:00:00 2001 From: hboehm Date: Fri, 29 Jun 2007 19:39:27 +0000 Subject: [PATCH] 2007-06-29 Hans Boehm * finalize.c (GC_finalize): Change dl_size and fo_size to size_t. * os_dep.c (GC_win32_get_mem): Add GC_mem_top_down option. --- ChangeLog | 5 +++++ finalize.c | 4 ++-- os_dep.c | 7 ++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8355566..a18cdee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-06-29 Hans Boehm + + * finalize.c (GC_finalize): Change dl_size and fo_size to size_t. + * os_dep.c (GC_win32_get_mem): Add GC_mem_top_down option. + 2007-06-28 Hans Boehm * doc/README.win32, doc/README, README.QUICK: Fix some of the worst diff --git a/finalize.c b/finalize.c index 85f21a1..6ae36c2 100644 --- a/finalize.c +++ b/finalize.c @@ -494,8 +494,8 @@ void GC_finalize(void) struct finalizable_object * curr_fo, * prev_fo, * next_fo; ptr_t real_ptr, real_link; size_t i; - int dl_size = (log_dl_table_size == -1 ) ? 0 : (1 << log_dl_table_size); - int fo_size = (log_fo_table_size == -1 ) ? 0 : (1 << log_fo_table_size); + size_t dl_size = (log_dl_table_size == -1 ) ? 0 : (1 << log_dl_table_size); + size_t fo_size = (log_fo_table_size == -1 ) ? 0 : (1 << log_fo_table_size); /* Make disappearing links disappear */ for (i = 0; i < dl_size; i++) { diff --git a/os_dep.c b/os_dep.c index 9ddba06..bb8fa08 100644 --- a/os_dep.c +++ b/os_dep.c @@ -1910,6 +1910,10 @@ SYSTEM_INFO GC_sysinfo; word GC_n_heap_bases = 0; +word GC_mem_top_down = 0; /* Change to MEM_TOP_DOWN for better 64-bit */ + /* testing. Otherwise all addresses tend to */ + /* end up in first 4GB, hiding bugs. */ + ptr_t GC_win32_get_mem(word bytes) { ptr_t result; @@ -1938,7 +1942,8 @@ ptr_t GC_win32_get_mem(word bytes) # ifdef GWW_VDB GetWriteWatch_alloc_flag | # endif - MEM_COMMIT | MEM_RESERVE, + MEM_COMMIT | MEM_RESERVE + | GC_mem_top_down, PAGE_EXECUTE_READWRITE); } if (HBLKDISPL(result) != 0) ABORT("Bad VirtualAlloc result"); -- 2.7.4