guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, boehm-demers-weiser-gc, updated. relea


From: Ludovic Courtès
Subject: [Guile-commits] GNU Guile branch, boehm-demers-weiser-gc, updated. release_1-9-2-148-g78747ac
Date: Thu, 20 Aug 2009 10:19:04 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=78747ac6fbdcbca423ecaed65a5d6da9c3262b58

The branch, boehm-demers-weiser-gc has been updated
       via  78747ac6fbdcbca423ecaed65a5d6da9c3262b58 (commit)
      from  e3eb628d889b8cb9821a274e41b72f9751b6ee0a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 78747ac6fbdcbca423ecaed65a5d6da9c3262b58
Author: Ludovic Courtès <address@hidden>
Date:   Thu Aug 20 12:18:57 2009 +0200

    Relax assumptions made in the precise VM stack marking procedure.
    
    * libguile/vm.c (vm_stack_mark): Change assertions into checks to
      determine whether VM points to a sane (initialized) object.  The
      assumption previously was that free-list elements would be zeroed, as
      implied by the comment in <gc/gc_mark.h>, but this doesn't appear to
      be the case.

-----------------------------------------------------------------------

Summary of changes:
 libguile/vm.c |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/libguile/vm.c b/libguile/vm.c
index 2920924..8fd378c 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -359,16 +359,12 @@ vm_stack_mark (GC_word *addr, struct GC_ms_entry 
*mark_stack_ptr,
      corresponding VM.  */
   vm = * ((struct scm_vm **) addr);
 
-  if (vm->stack_base == NULL)
+  if ((SCM *) addr != vm->stack_base - 1
+      || vm->stack_limit - vm->stack_base != vm->stack_size)
     /* ADDR must be a pointer to a free-list element, which we must ignore
        (see warning in <gc/gc_mark.h>).  */
     return mark_stack_ptr;
 
-  /* Sanity checks.  */
-  assert ((SCM *) addr == vm->stack_base - 1);
-  assert (vm->sp >= (SCM *) addr);
-  assert (vm->stack_limit - vm->stack_base == vm->stack_size);
-
   for (word = (GC_word *) vm->stack_base; word <= (GC_word *) vm->sp; word++)
     mark_stack_ptr = GC_MARK_AND_PUSH ((* (GC_word **) word),
                                       mark_stack_ptr, mark_stack_limit,


hooks/post-receive
-- 
GNU Guile




reply via email to

[Prev in Thread] Current Thread [Next in Thread]