]> granicus.if.org Git - gc/commitdiff
2007-06-29 Hans Boehm <Hans.Boehm@hp.com>
authorhboehm <hboehm>
Fri, 29 Jun 2007 19:39:27 +0000 (19:39 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:41 +0000 (21:06 +0400)
* 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
finalize.c
os_dep.c

index 8355566523f5115a3090080940544db9faf82b35..a18cdee60f30d91871854a89cfbd7404c542fbc7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-29  Hans Boehm <Hans.Boehm@hp.com>
+
+       * 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 <Hans.Boehm@hp.com>
 
        * doc/README.win32, doc/README, README.QUICK: Fix some of the worst
index 85f21a13abc8ebd89a284c46be5a48dfdb751334..6ae36c2ddc6285c7a10b70515d2a338aecd373e9 100644 (file)
@@ -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++) {
index 9ddba06c738d67c0120d154208a23b7e4f0bfe87..bb8fa08f615c5c2143276354cdb57dafcffe7b5f 100644 (file)
--- 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");