From 454d797353104c296f2a4d805c1b924a8792c3aa Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Thu, 6 Jan 2005 22:02:32 +0000 Subject: (mark_fringe_data): Declare extern. (Fgarbage_collect): Call mark_fringe_data. (overrun_check_free): Invalidate freed memory if XMALLOC_CLEAR_FREE_MEMORY is defined. --- src/alloc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/alloc.c b/src/alloc.c index 3723f9ea87..57ffd0b0ed 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 -- cgit v1.2.3