diff options
| author | Kim F. Storm | 2005-01-06 22:02:32 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2005-01-06 22:02:32 +0000 |
| commit | 454d797353104c296f2a4d805c1b924a8792c3aa (patch) | |
| tree | ce6ceb99ddf8a84175dc25775ceb2c51f89e893c /src/alloc.c | |
| parent | c35b0c6bc3bc05ef4dd0b44b9c477a223625d3d2 (diff) | |
| download | emacs-454d797353104c296f2a4d805c1b924a8792c3aa.tar.gz emacs-454d797353104c296f2a4d805c1b924a8792c3aa.zip | |
(mark_fringe_data): Declare extern.
(Fgarbage_collect): Call mark_fringe_data.
(overrun_check_free): Invalidate freed memory if
XMALLOC_CLEAR_FREE_MEMORY is defined.
Diffstat (limited to 'src/alloc.c')
| -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 *)); | |||
| 309 | static void mark_face_cache P_ ((struct face_cache *)); | 309 | static void mark_face_cache P_ ((struct face_cache *)); |
| 310 | 310 | ||
| 311 | #ifdef HAVE_WINDOW_SYSTEM | 311 | #ifdef HAVE_WINDOW_SYSTEM |
| 312 | extern void mark_fringe_data P_ ((void)); | ||
| 312 | static void mark_image P_ ((struct image *)); | 313 | static void mark_image P_ ((struct image *)); |
| 313 | static void mark_image_cache P_ ((struct frame *)); | 314 | static void mark_image_cache P_ ((struct frame *)); |
| 314 | #endif /* HAVE_WINDOW_SYSTEM */ | 315 | #endif /* HAVE_WINDOW_SYSTEM */ |
| @@ -704,9 +705,14 @@ overrun_check_free (block) | |||
| 704 | val + osize, | 705 | val + osize, |
| 705 | XMALLOC_OVERRUN_CHECK_SIZE)) | 706 | XMALLOC_OVERRUN_CHECK_SIZE)) |
| 706 | abort (); | 707 | abort (); |
| 708 | #ifdef XMALLOC_CLEAR_FREE_MEMORY | ||
| 709 | val -= XMALLOC_OVERRUN_CHECK_SIZE; | ||
| 710 | memset (val, 0xff, osize + XMALLOC_OVERRUN_CHECK_SIZE*2); | ||
| 711 | #else | ||
| 707 | bzero (val + osize, XMALLOC_OVERRUN_CHECK_SIZE); | 712 | bzero (val + osize, XMALLOC_OVERRUN_CHECK_SIZE); |
| 708 | val -= XMALLOC_OVERRUN_CHECK_SIZE; | 713 | val -= XMALLOC_OVERRUN_CHECK_SIZE; |
| 709 | bzero (val, XMALLOC_OVERRUN_CHECK_SIZE); | 714 | bzero (val, XMALLOC_OVERRUN_CHECK_SIZE); |
| 715 | #endif | ||
| 710 | } | 716 | } |
| 711 | 717 | ||
| 712 | free (val); | 718 | free (val); |
| @@ -4799,6 +4805,10 @@ returns nil, because real GC can't be done. */) | |||
| 4799 | } | 4805 | } |
| 4800 | mark_backtrace (); | 4806 | mark_backtrace (); |
| 4801 | 4807 | ||
| 4808 | #ifdef HAVE_WINDOW_SYSTEM | ||
| 4809 | mark_fringe_data (); | ||
| 4810 | #endif | ||
| 4811 | |||
| 4802 | #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES | 4812 | #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES |
| 4803 | mark_stack (); | 4813 | mark_stack (); |
| 4804 | #endif | 4814 | #endif |