* gc_os_dep.c (scm_get_stack_base) [MSWIN32]: Added detection of
authorMarius Vollmer <mvo@zagadka.de>
Mon, 11 Dec 2000 18:09:07 +0000 (18:09 +0000)
committerMarius Vollmer <mvo@zagadka.de>
Mon, 11 Dec 2000 18:09:07 +0000 (18:09 +0000)
page size on the w32 architecture.  Updated from Boehms gc5.2.
Thanks to Lars J. Aas!

libguile/gc_os_dep.c

index 4ce37ec..d9a11bf 100644 (file)
@@ -1572,9 +1572,16 @@ void *scm_get_stack_base()
 {
     int dummy;
     ptr_t sp = (ptr_t)(&dummy);
-    ptr_t trunc_sp = (ptr_t)((word)sp & ~(GC_page_size - 1));
-    word size = GC_get_writable_length(trunc_sp, 0);
-   
+    ptr_t trunc_sp;
+    word size;
+    static word GC_page_size = 0;
+    if (!GC_page_size) {
+        SYSTEM_INFO sysinfo;
+        GetSystemInfo(&sysinfo);
+        GC_page_size = sysinfo.dwPageSize;
+    }
+    trunc_sp = (ptr_t)((word)sp & ~(GC_page_size - 1));
+    size = GC_get_writable_length(trunc_sp, 0);
     return(trunc_sp + size);
 }