emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/gc/include/private/gc_priv.h [Boehm-GC]


From: Dave Love
Subject: [Emacs-diffs] Changes to emacs/gc/include/private/gc_priv.h [Boehm-GC]
Date: Mon, 16 Jun 2003 11:41:52 -0400

Index: emacs/gc/include/private/gc_priv.h
diff -c emacs/gc/include/private/gc_priv.h:1.2.2.1 
emacs/gc/include/private/gc_priv.h:1.2.2.2
*** emacs/gc/include/private/gc_priv.h:1.2.2.1  Thu Jun  5 14:23:05 2003
--- emacs/gc/include/private/gc_priv.h  Mon Jun 16 11:41:51 2003
***************
*** 42,49 ****
  #   include <sys/resource.h>
  #endif /* BSD_TIME */
  
! # ifndef GC_H
! #   include "gc.h"
  # endif
  
  # ifndef GC_MARK_H
--- 42,49 ----
  #   include <sys/resource.h>
  #endif /* BSD_TIME */
  
! # ifndef _GC_H
! #   include "../gc.h"
  # endif
  
  # ifndef GC_MARK_H
***************
*** 352,358 ****
  #   include <string.h>
  #   define BCOPY_EXISTS
  # endif
! # if defined(MACOSX)
  #   define BCOPY_EXISTS
  # endif
  
--- 352,359 ----
  #   include <string.h>
  #   define BCOPY_EXISTS
  # endif
! # if defined(DARWIN)
! #   include <string.h>
  #   define BCOPY_EXISTS
  # endif
  
***************
*** 905,911 ****
                       /* OFFSET_TOO_BIG if the value j would be too    */
                       /* large to fit in the entry.  (Note that the    */
                       /* size of these entries matters, both for       */
!                      /* space consumption and for cache utilization.  */
  #   define OFFSET_TOO_BIG 0xfe
  #   define OBJ_INVALID 0xff
  #   define MAP_ENTRY(map, bytes) (map)[bytes]
--- 906,912 ----
                       /* OFFSET_TOO_BIG if the value j would be too    */
                       /* large to fit in the entry.  (Note that the    */
                       /* size of these entries matters, both for       */
!                      /* space consumption and for cache utilization.) */
  #   define OFFSET_TOO_BIG 0xfe
  #   define OBJ_INVALID 0xff
  #   define MAP_ENTRY(map, bytes) (map)[bytes]
***************
*** 1180,1185 ****
--- 1181,1190 ----
  extern long GC_large_alloc_warn_suppressed;
        /* Number of warnings suppressed so far.        */
  
+ #ifdef THREADS
+   extern GC_bool GC_world_stopped;
+ #endif
+ 
  /* Operations */
  # ifndef abs
  #   define abs(x)  ((x) < 0? (-(x)) : (x))
***************
*** 1354,1359 ****
--- 1359,1369 ----
  # else
    void GC_push_regs GC_PROTO((void));
  # endif
+ # if defined(SPARC) || defined(IA64)
+   /* Cause all stacked registers to be saved in memory.  Return a     */
+   /* pointer to the top of the corresponding memory stack.            */
+   word GC_save_regs_in_stack GC_PROTO((void));
+ # endif
                        /* Push register contents onto mark stack.      */
                        /* If NURSERY is defined, the default push      */
                        /* action can be overridden with GC_push_proc   */
***************
*** 1403,1408 ****
--- 1413,1419 ----
                                    /* Set all mark bits associated with */
                                    /* a free list.                      */
  void GC_add_roots_inner GC_PROTO((char * b, char * e, GC_bool tmp));
+ void GC_remove_roots_inner GC_PROTO((char * b, char * e));
  GC_bool GC_is_static_root GC_PROTO((ptr_t p));
                /* Is the address p in one of the registered static     */
                /* root sections?                                       */
***************
*** 1618,1623 ****
--- 1629,1636 ----
                                /* Make the indicated                   */
                                /* free list nonempty, and return its   */
                                /* head.                                */
+ 
+ void GC_free_inner(GC_PTR p);
    
  void GC_init_headers GC_PROTO((void));
  struct hblkhdr * GC_install_header GC_PROTO((struct hblk *h));
***************
*** 1845,1850 ****
--- 1858,1867 ----
  # else 
  #     define GC_ASSERT(expr)
  # endif
+ 
+ /* Check a compile time assertion at compile time.  The error */
+ /* message for failure is a bit baroque, but ...              */
+ # define GC_STATIC_ASSERT(expr) sizeof(char[(expr)? 1 : -1])
  
  # if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
      /* We need additional synchronization facilities from the thread  */




reply via email to

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