changeset 3680:efca49973324

[xemacs-hg @ 2006-11-15 21:12:13 by aidan] Add a GCPRO; move around a warn_when_safe call to make me feel better about garbage collection.
author aidan
date Wed, 15 Nov 2006 21:12:17 +0000
parents 9ea601619457
children 3131094eed8c
files src/ChangeLog src/objects-xlike-inc.c src/specifier.c
diffstat 3 files changed, 18 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Tue Nov 14 22:51:37 2006 +0000
+++ b/src/ChangeLog	Wed Nov 15 21:12:17 2006 +0000
@@ -1,3 +1,14 @@
+2006-11-14  Aidan Kehoe  <kehoea@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. 
+
 2006-11-12  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* charset.h:
--- a/src/objects-xlike-inc.c	Tue Nov 14 22:51:37 2006 +0000
+++ b/src/objects-xlike-inc.c	Wed Nov 15 21:12:17 2006 +0000
@@ -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);
 
@@ -813,6 +809,10 @@
 	     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 = 
 	    DEVMETH_OR_GIVEN (XDEVICE (device), find_charset_font,
--- a/src/specifier.c	Tue Nov 14 22:51:37 2006 +0000
+++ b/src/specifier.c	Wed Nov 15 21:12:17 2006 +0000
@@ -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))