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/gc.h [Boehm-GC]


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

Index: emacs/gc/include/gc.h
diff -c emacs/gc/include/gc.h:1.2.2.2 emacs/gc/include/gc.h:1.2.2.3
*** emacs/gc/include/gc.h:1.2.2.2       Fri Jun  6 05:45:24 2003
--- emacs/gc/include/gc.h       Mon Jun 16 11:41:51 2003
***************
*** 341,357 ****
  GC_API void GC_add_roots GC_PROTO((char * low_address,
                                   char * high_address_plus_1));
  
  /* Add a displacement to the set of those considered valid by the     */
  /* collector.  GC_register_displacement(n) means that if p was returned */
  /* by GC_malloc, then (char *)p + n will be considered to be a valid  */
! /* pointer to n.  N must be small and less than the size of p.                
*/
  /* (All pointers to the interior of objects from the stack are                
*/
  /* considered valid in any case.  This applies to heap objects and    */
  /* static data.)                                                      */
  /* Preferably, this should be called before any other GC procedures.  */
  /* Calling it later adds to the probability of excess memory          */
  /* retention.                                                         */
! /* This is a no-op if the collector was compiled with recognition of  */
  /* arbitrary interior pointers enabled, which is now the default.     */
  GC_API void GC_register_displacement GC_PROTO((GC_word n));
  
--- 341,361 ----
  GC_API void GC_add_roots GC_PROTO((char * low_address,
                                   char * high_address_plus_1));
  
+ /* Remove a root segment.  Wizards only. */
+ GC_API void GC_remove_roots GC_PROTO((char * low_address, 
+     char * high_address_plus_1));
+ 
  /* Add a displacement to the set of those considered valid by the     */
  /* collector.  GC_register_displacement(n) means that if p was returned */
  /* by GC_malloc, then (char *)p + n will be considered to be a valid  */
! /* pointer to p.  N must be small and less than the size of p.                
*/
  /* (All pointers to the interior of objects from the stack are                
*/
  /* considered valid in any case.  This applies to heap objects and    */
  /* static data.)                                                      */
  /* Preferably, this should be called before any other GC procedures.  */
  /* Calling it later adds to the probability of excess memory          */
  /* retention.                                                         */
! /* This is a no-op if the collector has recognition of                        
*/
  /* arbitrary interior pointers enabled, which is now the default.     */
  GC_API void GC_register_displacement GC_PROTO((GC_word n));
  
***************
*** 872,880 ****
  
  #endif /* THREADS && !SRC_M3 */
  
! #if defined(GC_WIN32_THREADS)
  # include <windows.h>
- # include <winbase.h>
  
    /*
     * All threads must be created using GC_CreateThread, so that they will be
--- 876,883 ----
  
  #endif /* THREADS && !SRC_M3 */
  
! #if defined(GC_WIN32_THREADS) && !defined(__CYGWIN32__) && 
!defined(__CYGWIN__)
  # include <windows.h>
  
    /*
     * All threads must be created using GC_CreateThread, so that they will be
***************
*** 883,889 ****
     * and does then use DllMain to keep track of thread creations.  But new 
code
     * should be built to call GC_CreateThread.
     */
!   HANDLE WINAPI GC_CreateThread(
        LPSECURITY_ATTRIBUTES lpThreadAttributes,
        DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress,
        LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId );
--- 886,892 ----
     * and does then use DllMain to keep track of thread creations.  But new 
code
     * should be built to call GC_CreateThread.
     */
!   GC_API HANDLE GC_CreateThread(
        LPSECURITY_ATTRIBUTES lpThreadAttributes,
        DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress,
        LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId );
***************
*** 905,911 ****
  #  endif
  # endif /* defined(_WIN32_WCE) */
  
! #endif /* defined(GC_WIN32_THREADS) */
  
  /*
   * If you are planning on putting
--- 908,914 ----
  #  endif
  # endif /* defined(_WIN32_WCE) */
  
! #endif /* defined(GC_WIN32_THREADS)  && !cygwin */
  
  /*
   * If you are planning on putting
***************
*** 917,930 ****
  #   define GC_INIT() { extern end, etext; \
                       GC_noop(&end, &etext); }
  #else
! # if defined(__CYGWIN32__) && defined(GC_USE_DLL) || defined (_AIX)
      /*
       * Similarly gnu-win32 DLLs need explicit initialization from
       * the main program, as does AIX.
       */
  #   define GC_INIT() { GC_add_roots(DATASTART, DATAEND); }
  # else
  #   define GC_INIT()
  # endif
  #endif
  
--- 920,937 ----
  #   define GC_INIT() { extern end, etext; \
                       GC_noop(&end, &etext); }
  #else
! # if defined(__CYGWIN32__) && defined(GC_DLL) || defined (_AIX)
      /*
       * Similarly gnu-win32 DLLs need explicit initialization from
       * the main program, as does AIX.
       */
  #   define GC_INIT() { GC_add_roots(DATASTART, DATAEND); }
  # else
+ #  if defined(__APPLE__) && defined(__MACH__)
+ #   define GC_INIT() { GC_init(); }
+ #  else
  #   define GC_INIT()
+ #  endif
  # endif
  #endif
  




reply via email to

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