[PATCH] Add a GCPRO, move a warn_when_safe call to where its GCing is irrelevant

Aidan Kehoe kehoea at parhasard.net
Tue Nov 14 16:19:04 EST 2006




src/ChangeLog addition:

2006-11-14  Aidan Kehoe  <kehoea at parhasard.net>

	* objects-xlike-inc.c (x_find_charset_font):
	Move the warn_when_safe call to where GCing is irrelevant; as
	things are it doesn't GC, but I'm more comfortable without that
	being relevant. 
	* specifier.c (define_specifier_tag):
	Remove a couple of lines added for the sake of debugging; add a
	GCPRO1 for the allocated vector, since the call_trapping_problems
	can GC. 


XEmacs Trunk source patch:
Diff command:   cvs -q diff -Nu
Files affected: src/specifier.c
===================================================================
RCS src/objects-xlike-inc.c
===================================================================
RCS

Index: src/objects-xlike-inc.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/objects-xlike-inc.c,v
retrieving revision 1.4
diff -u -u -r1.4 objects-xlike-inc.c
--- src/objects-xlike-inc.c	2006/11/12 13:40:09	1.4
+++ src/objects-xlike-inc.c	2006/11/14 21:11:56
@@ -795,10 +795,6 @@
 	{
 	  Lisp_Object new_registries = make_vector(registries_len + 1, Qnil);
 
-	  warn_when_safe (Qface, Qwarning,
-			  "Your ASCII charset registries contain  nothing "
-			  "sensible.  Adding `" FALLBACK_ASCII_REGISTRY "'.");
-
 	  XVECTOR_DATA(new_registries)[0]
 	    = build_string(FALLBACK_ASCII_REGISTRY);
 
@@ -812,6 +808,10 @@
 	     invalidated and a change to the default face to be
 	     noted.  */
 	  set_charset_registries(charset, new_registries);
+
+	  warn_when_safe (Qface, Qwarning,
+			  "Your ASCII charset registries contain  nothing "
+			  "sensible.  Adding `" FALLBACK_ASCII_REGISTRY "'.");
 
 	  /* And recurse. */
 	  result = 
Index: src/specifier.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/specifier.c,v
retrieving revision 1.49
diff -u -u -r1.49 specifier.c
--- src/specifier.c	2006/11/11 16:05:39	1.49
+++ src/specifier.c	2006/11/14 21:11:57
@@ -1154,9 +1154,9 @@
 
 	  if (!NILP(charset_predicate))
 	    {
-	      static int line_1147_calls;
-	      ++line_1147_calls;
+	      struct gcpro gcpro1; 
 	      charpres = make_vector(impossible, Qnil); 
+	      GCPRO1 (charpres);
 
 	      /* If you want to extend the number of stages available, here
 		 in setup_charset_initial_specifier_tags, and in specifier.h
@@ -1198,6 +1198,7 @@
 
 #undef DEFINE_SPECIFIER_TAG_FROB
 
+	      UNGCPRO;
 	    }
 
 	  if (!NILP(assoc))

-- 
Santa Maradona, priez pour moi!



More information about the XEmacs-Patches mailing list