I've noticed several problems in `newgc.c` which prevent Racket from
building with backtrace support and I'm sending you two trivial patches
which will hopefully help fix these issues properly.

I think these commits:

http://git.racket-lang.org/plt/commitdiff/9b6ccb1476938785e95474968429359f05d7aaba
http://git.racket-lang.org/plt/commitdiff/706c1b9e00b1534a32f1c5df8ca35b16ec450e89

renamed `GC` to `GC_instance`, but there're some leftovers in
`backtrace.c` and `newgc.c` which lead to build failure due to
undeclared `GC` identifier.

This fixes leftovers from 
http://git.racket-lang.org/plt/commitdiff/9b6ccb1476938785e95474968429359f05d7aaba
http://git.racket-lang.org/plt/commitdiff/706c1b9e00b1534a32f1c5df8ca35b16ec450e89

diff --git a/src/racket/gc2/backtrace.c b/src/racket/gc2/backtrace.c
index 4f3ecc4..783a7d9 100644
--- a/src/racket/gc2/backtrace.c
+++ b/src/racket/gc2/backtrace.c
@@ -45,7 +45,7 @@ static void *print_out_pointer(const char *prefix, void *p,
   trace_page_t *page;
   const char *what;
 
-  page = pagemap_find_page(GC->page_maps, p);
+  page = pagemap_find_page(GC_instance->page_maps, p);
   if (!page || (trace_page_type(page) == TRACE_PAGE_BAD)) {
     GCPRINT(GCOUTF, "%s??? %p\n", prefix, p);
     return NULL;
@@ -94,7 +94,7 @@ static void print_traced_objects(int path_length_limit,
 				 GC_print_tagged_value_proc print_tagged_value)
 {
   int i;
-  GC->dumping_avoid_collection++;
+  GC_instance->dumping_avoid_collection++;
   GCPRINT(GCOUTF, "Begin Trace\n");
   for (i = 0; i < found_object_count; i++) {
     void *p;
@@ -107,5 +107,5 @@ static void print_traced_objects(int path_length_limit,
     }
   }
   GCPRINT(GCOUTF, "End Trace\n");
-  --GC->dumping_avoid_collection;
+  --GC_instance->dumping_avoid_collection;
 }
diff --git a/src/racket/gc2/newgc.c b/src/racket/gc2/newgc.c
index c3222cf..dc44360 100644
--- a/src/racket/gc2/newgc.c
+++ b/src/racket/gc2/newgc.c
@@ -1332,7 +1332,7 @@ static void backtrace_new_page(NewGC *gc, mpage *page)
 static void free_backtrace(mpage *page)
 {
   if (page->backtrace)
-    free_pages(GC, page->backtrace, APAGE_SIZE);
+    free_pages(GC_instance, page->backtrace, APAGE_SIZE);
 }
 
 static void *bt_source;
Commit
http://git.racket-lang.org/plt/commit/baab09fc1b3cb37b31c13920db230b28e7bde4f0
introduced arity change in `GC_X_variable_stack` but one of the calls in
`newgc.c` was not updated to match new function signature.

This fixes bug introduced by
http://git.racket-lang.org/plt/commit/baab09fc1b3cb37b31c13920db230b28e7bde4f0

diff --git a/src/racket/gc2/newgc.c b/src/racket/gc2/newgc.c
index c3222cf..d2b15ee 100644
--- a/src/racket/gc2/newgc.c
+++ b/src/racket/gc2/newgc.c
@@ -3895,7 +3895,7 @@ void GC_dump_variable_stack(void **var_stack,
   stack_get_type_name = get_type_name;
   stack_get_xtagged_name = get_xtagged_name;
   stack_print_tagged_value = print_tagged_value;
-  GC_do_dump_variable_stack(var_stack, delta, limit, stack_mem);
+  GC_do_dump_variable_stack(var_stack, delta, limit, stack_mem, GC_get_GC());
 }
 
 #endif
-- 
Happy Hacking.

http://sphinx.net.ru
_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Reply via email to