emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 5b3c4004a9 2/2: Remove calls to intern with a static string from


From: Po Lu
Subject: master 5b3c4004a9 2/2: Remove calls to intern with a static string from code that runs on X
Date: Sun, 18 Sep 2022 22:04:39 -0400 (EDT)

branch: master
commit 5b3c4004a9647aa2068e54c358e202f57d0ece3c
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Remove calls to intern with a static string from code that runs on X
    
    * Makefile.in (actual-all): Reword build failure advice.
    
    * src/bytecode.c (exec_byte_code, syms_of_bytecode):
    * src/font.c (syms_of_font):
    * src/hbfont.c (uni_combining):
    * src/xfns.c (Fx_display_backing_store, Fx_display_visual_class)
    (x_create_tip_frame, Fx_show_tip, syms_of_xfns):
    * src/xfont.c (xfont_supported_scripts, xfont_driver)
    (syms_of_xfont):
    * src/xsmfns.c (Fhandle_save_session, syms_of_xsmfns): Remove
    calls to intern with a static string.
---
 Makefile.in    | 26 +++++++++++++-------------
 src/bytecode.c |  4 +++-
 src/font.c     |  4 ++++
 src/hbfont.c   |  2 +-
 src/xfns.c     | 43 ++++++++++++++++++++++++++++++-------------
 src/xfont.c    | 34 +++++++++++++++++++---------------
 src/xsmfns.c   |  4 +++-
 7 files changed, 73 insertions(+), 44 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index de263c6858..9c9923a1f6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -380,26 +380,26 @@ bootstrap-all:
 actual-all: ${SUBDIR} info $(gsettings_SCHEMAS:.xml=.valid) 
src-depending-on-lisp
 
 # ADVICE-ON-FAILURE-BEGIN:all
-#   You might try to:
-#   - run "make bootstrap", which might fix the problem
-#   - run "make V=1", which displays the full commands invoked by make,
-#     to further investigate the problem
+# It can help to run "make bootstrap", which can resolve many build
+# failures caused by incrementally building from a previously built
+# checkout.
+
+# Failing that, running "make V=1" will cause Make to display the full
+# commands it invokes to build Emacs, which helps to investigate the
+# problem.
 # ADVICE-ON-FAILURE-END:all
 
 # ADVICE-ON-FAILURE-BEGIN:bootstrap
-#   You might try to:
-#   - run "git clean -fdx" and run "make bootstrap" again, which might
-#     fix the problem
-#     !BEWARE! "git clean -fdx" deletes all files that are not under
-#     !BEWARE! version control, which means that all changes to such
-#     !BEWARE! files will be lost and cannot be restored later
-#   - run "make V=1", which displays the full commands invoked by make,
-#     to further investigate the problem
+# If "make bootstrap" failed, try running "make extraclean" and then
+# "make bootstrap" again.  If that still fails and you are building
+# Emacs from a repository checkout, run "git clean -fdx" and retry
+# "make bootstrap".  Otherwise, please report a bug by sending email
+# to bug-gnu-emacs@gnu.org.
 # ADVICE-ON-FAILURE-END:bootstrap
 
 advice-on-failure:
        @echo
-       @echo "  \"make ${make-target}\" failed with exit status 
${exit-status}."
+       @echo "make ${make-target}\" failed with exit status ${exit-status}."
        @cat Makefile | \
          sed -n '/^# ADVICE-ON-FAILURE-BEGIN:${make-target}/,$${p;/^# 
ADVICE-ON-FAILURE-END:${make-target}/q};' | \
          sed 's/^# //' | grep -v '^ADVICE-ON-FAILURE-'
diff --git a/src/bytecode.c b/src/bytecode.c
index d75767bb0c..c765e1be2b 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -1431,7 +1431,7 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template,
          NEXT;
 
        CASE (Binteractive_p):  /* Obsolete since 24.1.  */
-         PUSH (call0 (intern ("interactive-p")));
+         PUSH (call0 (Qinteractive_p));
          NEXT;
 
        CASE (Bforward_char):
@@ -1749,6 +1749,8 @@ get_byte_code_arity (Lisp_Object args_template)
 void
 syms_of_bytecode (void)
 {
+  DEFSYM (Qinteractive_p, "interactive-p");
+
   defsubr (&Sbyte_code);
   defsubr (&Sinternal_stack_stats);
 
diff --git a/src/font.c b/src/font.c
index 2a8f00630c..413cb381ee 100644
--- a/src/font.c
+++ b/src/font.c
@@ -5555,6 +5555,10 @@ syms_of_font (void)
 
   DEFSYM (Qopentype, "opentype");
 
+  /* Currently used by hbfont.c, which has no syms_of_hbfont function
+     of its own.  */
+  DEFSYM (Qcanonical_combining_class, "canonical-combining-class");
+
   /* Important character set symbols.  */
   DEFSYM (Qascii_0, "ascii-0");
   DEFSYM (Qiso8859_1, "iso8859-1");
diff --git a/src/hbfont.c b/src/hbfont.c
index 2721a66120..476e08020e 100644
--- a/src/hbfont.c
+++ b/src/hbfont.c
@@ -249,7 +249,7 @@ uni_combining (hb_unicode_funcs_t *funcs, hb_codepoint_t 
ch, void *user_data)
   if (!combining_class_loaded)
     {
       canonical_combining_class_table =
-       uniprop_table (intern ("canonical-combining-class"));
+       uniprop_table (Qcanonical_combining_class);
       if (NILP (canonical_combining_class_table))
        emacs_abort ();
       staticpro (&canonical_combining_class_table);
diff --git a/src/xfns.c b/src/xfns.c
index ecb869bf36..4df5ad890e 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -5540,15 +5540,15 @@ On MS Windows, this returns nothing useful.  */)
   switch (DoesBackingStore (dpyinfo->screen))
     {
     case Always:
-      result = intern ("always");
+      result = Qalways;
       break;
 
     case WhenMapped:
-      result = intern ("when-mapped");
+      result = Qwhen_mapped;
       break;
 
     case NotUseful:
-      result = intern ("not-useful");
+      result = Qnot_useful;
       break;
 
     default:
@@ -5577,22 +5577,22 @@ If omitted or nil, that stands for the selected frame's 
display.
   switch (dpyinfo->visual_info.class)
     {
     case StaticGray:
-      result = intern ("static-gray");
+      result = Qstatic_gray;
       break;
     case GrayScale:
-      result = intern ("gray-scale");
+      result = Qgray_scale;
       break;
     case StaticColor:
-      result = intern ("static-color");
+      result = Qstatic_color;
       break;
     case PseudoColor:
-      result = intern ("pseudo-color");
+      result = Qpseudo_color;
       break;
     case TrueColor:
-      result = intern ("true-color");
+      result = Qtrue_color;
       break;
     case DirectColor:
-      result = intern ("direct-color");
+      result = Qdirect_color;
       break;
     default:
       error ("Display has an unknown visual class");
@@ -8309,9 +8309,9 @@ x_create_tip_frame (struct x_display_info *dpyinfo, 
Lisp_Object parms)
       disptype = Qmono;
     else if (FRAME_X_VISUAL_INFO (f)->class == GrayScale
              || FRAME_X_VISUAL_INFO (f)->class == StaticGray)
-      disptype = intern ("grayscale");
+      disptype = Qgrayscale;
     else
-      disptype = intern ("color");
+      disptype = Qcolor;
 
     if (NILP (Fframe_parameter (frame, Qdisplay_type)))
       {
@@ -8973,8 +8973,8 @@ Text larger than the specified size is clipped.  */)
 
  start_timer:
   /* Let the tip disappear after timeout seconds.  */
-  tip_timer = call3 (intern ("run-at-time"), timeout, Qnil,
-                    intern ("x-hide-tip"));
+  tip_timer = call3 (Qrun_at_time, timeout, Qnil,
+                    Qx_hide_tip);
 
   return unbind_to (count, Qnil);
 }
@@ -10072,6 +10072,23 @@ eliminated in future versions of Emacs.  */);
   /* Tell Emacs about this window system.  */
   Fprovide (Qx, Qnil);
 
+  /* Used by Fx_show_tip.  */
+  DEFSYM (Qrun_at_time, "run-at-time");
+  DEFSYM (Qx_hide_tip, "x-hide-tip");
+
+  /* Used by display class and backing store reporting functions.  */
+  DEFSYM (Qalways, "always");
+  DEFSYM (Qwhen_mapped, "when-mapped");
+  DEFSYM (Qnot_useful, "not-useful");
+  DEFSYM (Qstatic_gray, "static-gray");
+  DEFSYM (Qgray_scale, "gray-scale");
+  DEFSYM (Qstatic_color, "static-color");
+  DEFSYM (Qpseudo_color, "pseudo-color");
+  DEFSYM (Qtrue_color, "true-color");
+  DEFSYM (Qdirect_color, "direct-color");
+  DEFSYM (Qgrayscale, "grayscale");
+  DEFSYM (Qcolor, "color");
+
 #ifdef HAVE_XINPUT2
   DEFSYM (Qxinput2, "xinput2");
 
diff --git a/src/xfont.c b/src/xfont.c
index 74237e8aa8..951446b44d 100644
--- a/src/xfont.c
+++ b/src/xfont.c
@@ -253,9 +253,9 @@ xfont_supported_scripts (Display *display, char *fontname, 
Lisp_Object props,
 
   /* Two special cases to avoid opening rather big fonts.  */
   if (EQ (AREF (props, 2), Qja))
-    return list2 (intern ("kana"), intern ("han"));
+    return list2 (Qkana, Qhan);
   if (EQ (AREF (props, 2), Qko))
-    return list1 (intern ("hangul"));
+    return list1 (Qhangul);
   scripts = Fgethash (props, xfont_scripts_cache, Qt);
   if (EQ (scripts, Qt))
     {
@@ -1130,19 +1130,19 @@ static void syms_of_xfont_for_pdumper (void);
 
 struct font_driver const xfont_driver =
   {
-  .type = LISPSYM_INITIALLY (Qx),
-  .get_cache = xfont_get_cache,
-  .list = xfont_list,
-  .match = xfont_match,
-  .list_family = xfont_list_family,
-  .open_font = xfont_open,
-  .close_font = xfont_close,
-  .prepare_face = xfont_prepare_face,
-  .has_char = xfont_has_char,
-  .encode_char = xfont_encode_char,
-  .text_extents = xfont_text_extents,
-  .draw = xfont_draw,
-  .check = xfont_check,
+    .type = LISPSYM_INITIALLY (Qx),
+    .get_cache = xfont_get_cache,
+    .list = xfont_list,
+    .match = xfont_match,
+    .list_family = xfont_list_family,
+    .open_font = xfont_open,
+    .close_font = xfont_close,
+    .prepare_face = xfont_prepare_face,
+    .has_char = xfont_has_char,
+    .encode_char = xfont_encode_char,
+    .text_extents = xfont_text_extents,
+    .draw = xfont_draw,
+    .check = xfont_check,
   };
 
 void
@@ -1153,6 +1153,10 @@ syms_of_xfont (void)
   staticpro (&xfont_scratch_props);
   xfont_scratch_props = make_nil_vector (8);
   pdumper_do_now_and_after_load (syms_of_xfont_for_pdumper);
+
+  DEFSYM (Qkana, "kana");
+  DEFSYM (Qhan, "han");
+  DEFSYM (Qhangul, "hangul");
 }
 
 static void
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 7015a8eb63..7a17e6dbd8 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -511,7 +511,7 @@ Do not call this function yourself. */)
      this at the wrong time. */
   if (doing_interact && ! kill_emacs)
     {
-      bool cancel_shutdown = ! NILP (call0 (intern ("emacs-session-save")));
+      bool cancel_shutdown = ! NILP (call0 (Qemacs_session_save));
 
       SmcInteractDone (smc_conn, cancel_shutdown);
       SmcSaveYourselfDone (smc_conn, True);
@@ -542,6 +542,8 @@ Do not call this function yourself. */)
 void
 syms_of_xsmfns (void)
 {
+  DEFSYM (Qemacs_session_save, "emacs-session-save");
+
   DEFVAR_LISP ("x-session-id", Vx_session_id,
     doc: /* The session id Emacs got from the session manager for this session.
 Changing the value does not change the session id used by Emacs.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]