# HG changeset patch # User Stefan Monnier # Date 1191088209 0 # Node ID 372151e622f32e25643b66b0cf7da18c2c5eba69 # Parent 5596152dc0c7808adfd4c9759c4397591963e096 (load_face_font, free_realized_face, clear_face_gcs): Don't let signal handlers run when a GC is freed but not yet NULL'ed. (x_free_gc): Remove BLOCK_INPUT since it's now redundant. diff -r 5596152dc0c7 -r 372151e622f3 src/ChangeLog --- a/src/ChangeLog Sat Sep 29 16:23:59 2007 +0000 +++ b/src/ChangeLog Sat Sep 29 17:50:09 2007 +0000 @@ -1,3 +1,9 @@ +2007-09-29 Stefan Monnier + + * xfaces.c (load_face_font, free_realized_face, clear_face_gcs): + Don't let signal handlers run when a GC is freed but not yet NULL'ed. + (x_free_gc): Remove BLOCK_INPUT since it's now redundant. + 2007-09-28 Dan Nicolaescu * Makefile.in (lisp, shortlisp): Delete server.elc, it is not diff -r 5596152dc0c7 -r 372151e622f3 src/xfaces.c --- a/src/xfaces.c Sat Sep 29 16:23:59 2007 +0000 +++ b/src/xfaces.c Sat Sep 29 17:50:09 2007 +0000 @@ -744,10 +744,9 @@ struct frame *f; GC gc; { - BLOCK_INPUT; + eassert (interrupt_input_blocked); IF_DEBUG (xassert (--ngcs >= 0)); XFreeGC (FRAME_X_DISPLAY (f), gc); - UNBLOCK_INPUT; } #endif /* HAVE_X_WINDOWS */ @@ -777,10 +776,8 @@ struct frame *f; GC gc; { - BLOCK_INPUT; IF_DEBUG (xassert (--ngcs >= 0)); xfree (gc); - UNBLOCK_INPUT; } #endif /* WINDOWSNT */ @@ -807,10 +804,9 @@ struct frame *f; GC gc; { - BLOCK_INPUT; + eassert (interrupt_input_blocked); IF_DEBUG (xassert (--ngcs >= 0)); XFreeGC (FRAME_MAC_DISPLAY (f), gc); - UNBLOCK_INPUT; } #endif /* MAC_OS */ @@ -1257,8 +1253,10 @@ face->overstrike = needs_overstrike; if (face->gc) { + BLOCK_INPUT; x_free_gc (f, face->gc); face->gc = 0; + UNBLOCK_INPUT; } } else @@ -5256,8 +5254,10 @@ free_face_fontset (f, face); if (face->gc) { + BLOCK_INPUT; x_free_gc (f, face->gc); face->gc = 0; + UNBLOCK_INPUT; } free_face_colors (f, face); @@ -5421,8 +5421,10 @@ struct face *face = c->faces_by_id[i]; if (face && face->gc) { + BLOCK_INPUT; x_free_gc (c->f, face->gc); face->gc = 0; + UNBLOCK_INPUT; } } #endif /* HAVE_WINDOW_SYSTEM */