~ chicken-core (chicken-5) 4f3e7c7ca683d7c8fc208f9632c77cc08f2eee9b
commit 4f3e7c7ca683d7c8fc208f9632c77cc08f2eee9b Author: felix <felix@call-with-current-continuation.org> AuthorDate: Mon Aug 9 20:29:27 2010 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Mon Aug 9 20:29:27 2010 +0200 fixed mean bug in creation of initial ptable diff --git a/runtime.c b/runtime.c index e41d9aa7..2e13f5a3 100644 --- a/runtime.c +++ b/runtime.c @@ -725,7 +725,8 @@ int CHICKEN_initialize(int heap, int stack, int symbols, void *toplevel) static C_PTABLE_ENTRY *create_initial_ptable() { - C_PTABLE_ENTRY *pt = (C_PTABLE_ENTRY *)C_malloc(sizeof(C_PTABLE_ENTRY) * 61); /* take note of this, it's subtle */ + /* hardcoded table size - this must match the number of C_pte calls! */ + C_PTABLE_ENTRY *pt = (C_PTABLE_ENTRY *)C_malloc(sizeof(C_PTABLE_ENTRY) * 64); int i = 0; if(pt == NULL) @@ -794,7 +795,8 @@ static C_PTABLE_ENTRY *create_initial_ptable() C_pte(C_copy_closure); C_pte(C_dump_heap_state); C_pte(C_filter_heap_objects); - + + /* did you remember the hardcoded pte table size? */ pt[ i ].id = NULL; return pt; }Trap