aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorKim F. Storm2005-01-06 22:02:32 +0000
committerKim F. Storm2005-01-06 22:02:32 +0000
commit454d797353104c296f2a4d805c1b924a8792c3aa (patch)
treece6ceb99ddf8a84175dc25775ceb2c51f89e893c /src/alloc.c
parentc35b0c6bc3bc05ef4dd0b44b9c477a223625d3d2 (diff)
downloademacs-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.c10
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 *));
309static void mark_face_cache P_ ((struct face_cache *)); 309static void mark_face_cache P_ ((struct face_cache *));
310 310
311#ifdef HAVE_WINDOW_SYSTEM 311#ifdef HAVE_WINDOW_SYSTEM
312extern void mark_fringe_data P_ ((void));
312static void mark_image P_ ((struct image *)); 313static void mark_image P_ ((struct image *));
313static void mark_image_cache P_ ((struct frame *)); 314static 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