[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/gc/include/gc.h [Boehm-GC],
Dave Love <=