emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/alloc.c


From: Andreas Schwab
Subject: [Emacs-diffs] Changes to emacs/src/alloc.c
Date: Thu, 07 Feb 2002 06:05:09 -0500

Index: emacs/src/alloc.c
diff -c emacs/src/alloc.c:1.260 emacs/src/alloc.c:1.261
*** emacs/src/alloc.c:1.260     Sun Jan 27 17:53:26 2002
--- emacs/src/alloc.c   Thu Feb  7 06:05:08 2002
***************
*** 1,5 ****
  /* Storage allocation and gc for GNU Emacs Lisp interpreter.
!    Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 2001
        Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
--- 1,5 ----
  /* Storage allocation and gc for GNU Emacs Lisp interpreter.
!    Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 2001, 2002
        Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
***************
*** 3734,3739 ****
--- 3734,3740 ----
  static void
  mark_stack ()
  {
+   int i;
    jmp_buf j;
    volatile int stack_grows_down_p = (char *) &j > (char *) stack_base;
    void *end;
***************
*** 3769,3785 ****
    /* This assumes that the stack is a contiguous region in memory.  If
       that's not the case, something has to be done here to iterate
       over the stack segments.  */
! #if GC_LISP_OBJECT_ALIGNMENT == 1
!   mark_memory (stack_base, end);
!   mark_memory ((char *) stack_base + 1, end);
!   mark_memory ((char *) stack_base + 2, end);
!   mark_memory ((char *) stack_base + 3, end);
! #elif GC_LISP_OBJECT_ALIGNMENT == 2
!   mark_memory (stack_base, end);
!   mark_memory ((char *) stack_base + 2, end);
! #else
!   mark_memory (stack_base, end);
  #endif
  
  #if GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS
    check_gcpros ();
--- 3770,3780 ----
    /* This assumes that the stack is a contiguous region in memory.  If
       that's not the case, something has to be done here to iterate
       over the stack segments.  */
! #ifndef GC_LISP_OBJECT_ALIGNMENT
! #define GC_LISP_OBJECT_ALIGNMENT sizeof (Lisp_Object)
  #endif
+   for (i = 0; i < sizeof (Lisp_Object) / GC_LISP_OBJECT_ALIGNMENT; i++)
+     mark_memory ((char *) stack_base + i, end);
  
  #if GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS
    check_gcpros ();



reply via email to

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