diff options
author | Kim F. Storm <storm@cua.dk> | 2005-01-06 22:02:32 +0000 |
---|---|---|
committer | Kim F. Storm <storm@cua.dk> | 2005-01-06 22:02:32 +0000 |
commit | 454d797353104c296f2a4d805c1b924a8792c3aa (patch) | |
tree | ce6ceb99ddf8a84175dc25775ceb2c51f89e893c | |
parent | c35b0c6bc3bc05ef4dd0b44b9c477a223625d3d2 (diff) | |
download | emacs-454d797353104c296f2a4d805c1b924a8792c3aa.tar.gz |
(mark_fringe_data): Declare extern.
(Fgarbage_collect): Call mark_fringe_data.
(overrun_check_free): Invalidate freed memory if
XMALLOC_CLEAR_FREE_MEMORY is defined.
-rw-r--r-- | src/alloc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c index 3723f9ea872..57ffd0b0ed9 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -309,6 +309,7 @@ static void mark_glyph_matrix P_ ((struct glyph_matrix *)); static void mark_face_cache P_ ((struct face_cache *)); #ifdef HAVE_WINDOW_SYSTEM +extern void mark_fringe_data P_ ((void)); static void mark_image P_ ((struct image *)); static void mark_image_cache P_ ((struct frame *)); #endif /* HAVE_WINDOW_SYSTEM */ @@ -704,9 +705,14 @@ overrun_check_free (block) val + osize, XMALLOC_OVERRUN_CHECK_SIZE)) abort (); +#ifdef XMALLOC_CLEAR_FREE_MEMORY + val -= XMALLOC_OVERRUN_CHECK_SIZE; + memset (val, 0xff, osize + XMALLOC_OVERRUN_CHECK_SIZE*2); +#else bzero (val + osize, XMALLOC_OVERRUN_CHECK_SIZE); val -= XMALLOC_OVERRUN_CHECK_SIZE; bzero (val, XMALLOC_OVERRUN_CHECK_SIZE); +#endif } free (val); @@ -4799,6 +4805,10 @@ returns nil, because real GC can't be done. */) } mark_backtrace (); +#ifdef HAVE_WINDOW_SYSTEM + mark_fringe_data (); +#endif + #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES mark_stack (); #endif |