aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2007-09-29 17:50:09 +0000
committerStefan Monnier2007-09-29 17:50:09 +0000
commited0c79c6fd48156b8ff578433f66764c2b68bfed (patch)
treef64896cc76591920f46335d82db297d6bf32441d /src
parent7fbe8079e7d80102bafb75d334b788d3d3d94d73 (diff)
downloademacs-ed0c79c6fd48156b8ff578433f66764c2b68bfed.tar.gz
emacs-ed0c79c6fd48156b8ff578433f66764c2b68bfed.zip
(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.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog6
-rw-r--r--src/xfaces.c14
2 files changed, 14 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index ac56b160c88..d5ca272fe51 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12007-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * xfaces.c (load_face_font, free_realized_face, clear_face_gcs):
4 Don't let signal handlers run when a GC is freed but not yet NULL'ed.
5 (x_free_gc): Remove BLOCK_INPUT since it's now redundant.
6
12007-09-28 Dan Nicolaescu <dann@ics.uci.edu> 72007-09-28 Dan Nicolaescu <dann@ics.uci.edu>
2 8
3 * Makefile.in (lisp, shortlisp): Delete server.elc, it is not 9 * Makefile.in (lisp, shortlisp): Delete server.elc, it is not
diff --git a/src/xfaces.c b/src/xfaces.c
index b1fcf28d9c3..01ac364589f 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -744,10 +744,9 @@ x_free_gc (f, gc)
744 struct frame *f; 744 struct frame *f;
745 GC gc; 745 GC gc;
746{ 746{
747 BLOCK_INPUT; 747 eassert (interrupt_input_blocked);
748 IF_DEBUG (xassert (--ngcs >= 0)); 748 IF_DEBUG (xassert (--ngcs >= 0));
749 XFreeGC (FRAME_X_DISPLAY (f), gc); 749 XFreeGC (FRAME_X_DISPLAY (f), gc);
750 UNBLOCK_INPUT;
751} 750}
752 751
753#endif /* HAVE_X_WINDOWS */ 752#endif /* HAVE_X_WINDOWS */
@@ -777,10 +776,8 @@ x_free_gc (f, gc)
777 struct frame *f; 776 struct frame *f;
778 GC gc; 777 GC gc;
779{ 778{
780 BLOCK_INPUT;
781 IF_DEBUG (xassert (--ngcs >= 0)); 779 IF_DEBUG (xassert (--ngcs >= 0));
782 xfree (gc); 780 xfree (gc);
783 UNBLOCK_INPUT;
784} 781}
785 782
786#endif /* WINDOWSNT */ 783#endif /* WINDOWSNT */
@@ -807,10 +804,9 @@ x_free_gc (f, gc)
807 struct frame *f; 804 struct frame *f;
808 GC gc; 805 GC gc;
809{ 806{
810 BLOCK_INPUT; 807 eassert (interrupt_input_blocked);
811 IF_DEBUG (xassert (--ngcs >= 0)); 808 IF_DEBUG (xassert (--ngcs >= 0));
812 XFreeGC (FRAME_MAC_DISPLAY (f), gc); 809 XFreeGC (FRAME_MAC_DISPLAY (f), gc);
813 UNBLOCK_INPUT;
814} 810}
815 811
816#endif /* MAC_OS */ 812#endif /* MAC_OS */
@@ -1257,8 +1253,10 @@ load_face_font (f, face, c)
1257 face->overstrike = needs_overstrike; 1253 face->overstrike = needs_overstrike;
1258 if (face->gc) 1254 if (face->gc)
1259 { 1255 {
1256 BLOCK_INPUT;
1260 x_free_gc (f, face->gc); 1257 x_free_gc (f, face->gc);
1261 face->gc = 0; 1258 face->gc = 0;
1259 UNBLOCK_INPUT;
1262 } 1260 }
1263 } 1261 }
1264 else 1262 else
@@ -5256,8 +5254,10 @@ free_realized_face (f, face)
5256 free_face_fontset (f, face); 5254 free_face_fontset (f, face);
5257 if (face->gc) 5255 if (face->gc)
5258 { 5256 {
5257 BLOCK_INPUT;
5259 x_free_gc (f, face->gc); 5258 x_free_gc (f, face->gc);
5260 face->gc = 0; 5259 face->gc = 0;
5260 UNBLOCK_INPUT;
5261 } 5261 }
5262 5262
5263 free_face_colors (f, face); 5263 free_face_colors (f, face);
@@ -5421,8 +5421,10 @@ clear_face_gcs (c)
5421 struct face *face = c->faces_by_id[i]; 5421 struct face *face = c->faces_by_id[i];
5422 if (face && face->gc) 5422 if (face && face->gc)
5423 { 5423 {
5424 BLOCK_INPUT;
5424 x_free_gc (c->f, face->gc); 5425 x_free_gc (c->f, face->gc);
5425 face->gc = 0; 5426 face->gc = 0;
5427 UNBLOCK_INPUT;
5426 } 5428 }
5427 } 5429 }
5428#endif /* HAVE_WINDOW_SYSTEM */ 5430#endif /* HAVE_WINDOW_SYSTEM */