diff man/internals/internals.texi @ 3094:ad2f4ae9895b

[xemacs-hg @ 2005-11-26 11:45:47 by stephent] Xft merge. <87k6ev4p8q.fsf@tleepslib.sk.tsukuba.ac.jp>
author stephent
date Sat, 26 Nov 2005 11:46:25 +0000
parents 0ae46b360391
children 971e3c687f18
line wrap: on
line diff
--- a/man/internals/internals.texi	Fri Nov 25 22:51:38 2005 +0000
+++ b/man/internals/internals.texi	Sat Nov 26 11:46:25 2005 +0000
@@ -5114,10 +5114,15 @@
 be derived from the name of the symbol using the same rules as for Lisp
 primitives.  Such variables allow the C code to check whether a
 particular @code{Lisp_Object} is equal to a given symbol.  Symbols are
-Lisp objects, so these variables may be passed to Lisp primitives.  (An
-alternative to the use of @samp{Q...} variables is to call the
+Lisp objects, so these variables may be passed to Lisp primitives.  (A
+tempting alternative to the use of @samp{Q...} variables is to call the
 @code{intern} function at initialization in the
-@code{vars_of_@var{module}} function, which is hardly less efficient.)
+@code{vars_of_@var{module}} function.  But this does not
+@code{staticpro} the symbol, which in theory could get uninterned, and
+then garbage collected while you're not looking.  You could
+@code{staticpro} yourself, but in a production XEmacs @code{intern} and
+@code{staticpro} is all that @code{DEFSYMBOL} does, while in a debugging
+XEmacs it also does some error-checking, which you normally want.)
 
   @strong{Convention}: Global variables whose names begin with @samp{V}
 are variables that contain Lisp objects.  The convention here is that