aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorStefan Monnier2010-12-10 19:13:08 -0500
committerStefan Monnier2010-12-10 19:13:08 -0500
commit2c302df3a13236bfbf8ea1b771d13618fcda8d71 (patch)
treef26dc9f22861dc37610de319d05255de058c221b /src/alloc.c
parent0c747cb143fa227e78f350ac353d703f489209df (diff)
parent175069efeb080517afefdd44a06f7a779ea8c25c (diff)
downloademacs-2c302df3a13236bfbf8ea1b771d13618fcda8d71.tar.gz
emacs-2c302df3a13236bfbf8ea1b771d13618fcda8d71.zip
Merge from trunk
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 0f83f375d40..b18fd6feb3d 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -351,7 +351,6 @@ enum mem_type
351 351
352static POINTER_TYPE *lisp_align_malloc (size_t, enum mem_type); 352static POINTER_TYPE *lisp_align_malloc (size_t, enum mem_type);
353static POINTER_TYPE *lisp_malloc (size_t, enum mem_type); 353static POINTER_TYPE *lisp_malloc (size_t, enum mem_type);
354void refill_memory_reserve (void);
355 354
356 355
357#if GC_MARK_STACK || defined GC_MALLOC_CHECK 356#if GC_MARK_STACK || defined GC_MALLOC_CHECK
@@ -4043,8 +4042,14 @@ DEFUN ("gc-status", Fgc_status, Sgc_status, 0, 0, "",
4043static INLINE void 4042static INLINE void
4044mark_maybe_object (Lisp_Object obj) 4043mark_maybe_object (Lisp_Object obj)
4045{ 4044{
4046 void *po = (void *) XPNTR (obj); 4045 void *po;
4047 struct mem_node *m = mem_find (po); 4046 struct mem_node *m;
4047
4048 if (INTEGERP (obj))
4049 return;
4050
4051 po = (void *) XPNTR (obj);
4052 m = mem_find (po);
4048 4053
4049 if (m != MEM_NIL) 4054 if (m != MEM_NIL)
4050 { 4055 {
@@ -5694,13 +5699,14 @@ mark_terminals (void)
5694 for (t = terminal_list; t; t = t->next_terminal) 5699 for (t = terminal_list; t; t = t->next_terminal)
5695 { 5700 {
5696 eassert (t->name != NULL); 5701 eassert (t->name != NULL);
5697 if (!VECTOR_MARKED_P (t))
5698 {
5699#ifdef HAVE_WINDOW_SYSTEM 5702#ifdef HAVE_WINDOW_SYSTEM
5700 mark_image_cache (t->image_cache); 5703 /* If a terminal object is reachable from a stacpro'ed object,
5704 it might have been marked already. Make sure the image cache
5705 gets marked. */
5706 mark_image_cache (t->image_cache);
5701#endif /* HAVE_WINDOW_SYSTEM */ 5707#endif /* HAVE_WINDOW_SYSTEM */
5702 mark_vectorlike ((struct Lisp_Vector *)t); 5708 if (!VECTOR_MARKED_P (t))
5703 } 5709 mark_vectorlike ((struct Lisp_Vector *)t);
5704 } 5710 }
5705} 5711}
5706 5712