emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r109025: Minor adjustments to interni


From: Dmitry Antipov
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r109025: Minor adjustments to interning code.
Date: Wed, 11 Jul 2012 11:37:39 +0400
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 109025
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Wed 2012-07-11 11:37:39 +0400
message:
  Minor adjustments to interning code.
  * lisp.h (intern, intern_c_string): Redefine as static inline
  wrappers for intern_1 and intern_c_string_1, respectively.
  (intern_1, intern_c_string_1): Rename prototypes.
  * lread.c (intern_1, intern_c_string_1): Simplify Vobarray checking.
  * font.c (font_intern_prop): Likewise.  Adjust comment.
  * w32font.c (intern_font_name): Likewise.
modified:
  src/ChangeLog
  src/font.c
  src/lisp.h
  src/lread.c
  src/w32font.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-07-11 07:28:27 +0000
+++ b/src/ChangeLog     2012-07-11 07:37:39 +0000
@@ -1,3 +1,13 @@
+2012-07-11  Dmitry Antipov  <address@hidden>
+
+       Minor adjustments to interning code.
+       * lisp.h (intern, intern_c_string): Redefine as static inline
+       wrappers for intern_1 and intern_c_string_1, respectively.
+       (intern_1, intern_c_string_1): Rename prototypes.
+       * lread.c (intern_1, intern_c_string_1): Simplify Vobarray checking.
+       * font.c (font_intern_prop): Likewise.  Adjust comment.
+       * w32font.c (intern_font_name): Likewise.
+
 2012-07-11  Andreas Schwab  <address@hidden>
 
        * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.

=== modified file 'src/font.c'
--- a/src/font.c        2012-07-11 07:19:44 +0000
+++ b/src/font.c        2012-07-11 07:37:39 +0000
@@ -264,18 +264,12 @@
        }
     }
 
-  /* The following code is copied from the function intern (in
-     lread.c), and modified to suit our purpose.  */
-  obarray = Vobarray;
-  if (!VECTORP (obarray) || ASIZE (obarray) == 0)
-    obarray = check_obarray (obarray);
+  /* This code is similar to intern function from lread.c.  */
+  obarray = check_obarray (Vobarray);
   parse_str_as_multibyte ((unsigned char *) str, len, &nchars, &nbytes);
-  if (len == nchars || len != nbytes)
-    /* CONTENTS contains no multibyte sequences or contains an invalid
-       multibyte sequence.  We'll make a unibyte string.  */
-    tem = oblookup (obarray, str, len, len);
-  else
-    tem = oblookup (obarray, str, nchars, len);
+  tem = oblookup (obarray, str,
+                 (len == nchars || len != nbytes) ? len : nchars, len);
+
   if (SYMBOLP (tem))
     return tem;
   if (len == nchars || len != nbytes)

=== modified file 'src/lisp.h'
--- a/src/lisp.h        2012-07-11 06:14:19 +0000
+++ b/src/lisp.h        2012-07-11 07:37:39 +0000
@@ -2734,8 +2734,8 @@
 extern Lisp_Object Qvariable_documentation, Qstandard_input;
 extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
 extern Lisp_Object check_obarray (Lisp_Object);
-extern Lisp_Object intern (const char *);
-extern Lisp_Object intern_c_string (const char *);
+extern Lisp_Object intern_1 (const char *, ptrdiff_t);
+extern Lisp_Object intern_c_string_1 (const char *, ptrdiff_t);
 extern Lisp_Object oblookup (Lisp_Object, const char *, ptrdiff_t, ptrdiff_t);
 #define LOADHIST_ATTACH(x) \
   do {                                                                 \
@@ -2752,6 +2752,18 @@
 extern void init_lread (void);
 extern void syms_of_lread (void);
 
+static inline Lisp_Object
+intern (const char *str)
+{
+  return intern_1 (str, strlen (str));
+}
+
+static inline Lisp_Object
+intern_c_string (const char *str)
+{
+  return intern_c_string_1 (str, strlen (str));
+}
+
 /* Defined in eval.c.  */
 extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qmacro;
 extern Lisp_Object Qinhibit_quit, Qclosure;

=== modified file 'src/lread.c'
--- a/src/lread.c       2012-07-11 06:14:19 +0000
+++ b/src/lread.c       2012-07-11 07:37:39 +0000
@@ -3652,32 +3652,20 @@
    interned in the current obarray.  */
 
 Lisp_Object
-intern (const char *str)
+intern_1 (const char *str, ptrdiff_t len)
 {
-  Lisp_Object tem;
-  ptrdiff_t len = strlen (str);
-  Lisp_Object obarray;
+  Lisp_Object obarray = check_obarray (Vobarray);
+  Lisp_Object tem = oblookup (obarray, str, len, len);
 
-  obarray = Vobarray;
-  if (!VECTORP (obarray) || ASIZE (obarray) == 0)
-    obarray = check_obarray (obarray);
-  tem = oblookup (obarray, str, len, len);
-  if (SYMBOLP (tem))
-    return tem;
-  return Fintern (make_string (str, len), obarray);
+  return SYMBOLP (tem) ? tem : Fintern (make_string (str, len), obarray);
 }
 
 Lisp_Object
-intern_c_string (const char *str)
+intern_c_string_1 (const char *str, ptrdiff_t len)
 {
-  Lisp_Object tem;
-  ptrdiff_t len = strlen (str);
-  Lisp_Object obarray;
+  Lisp_Object obarray = check_obarray (Vobarray);
+  Lisp_Object tem = oblookup (obarray, str, len, len);
 
-  obarray = Vobarray;
-  if (!VECTORP (obarray) || ASIZE (obarray) == 0)
-    obarray = check_obarray (obarray);
-  tem = oblookup (obarray, str, len, len);
   if (SYMBOLP (tem))
     return tem;
 

=== modified file 'src/w32font.c'
--- a/src/w32font.c     2012-07-05 06:32:41 +0000
+++ b/src/w32font.c     2012-07-11 07:37:39 +0000
@@ -289,20 +289,12 @@
 Lisp_Object
 intern_font_name (char * string)
 {
-  Lisp_Object obarray, tem, str;
-  int len;
-
-  str = DECODE_SYSTEM (build_string (string));
-  len = SCHARS (str);
-
-  /* The following code is copied from the function intern (in lread.c).  */
-  obarray = Vobarray;
-  if (!VECTORP (obarray) || ASIZE (obarray) == 0)
-    obarray = check_obarray (obarray);
-  tem = oblookup (obarray, SDATA (str), len, len);
-  if (SYMBOLP (tem))
-    return tem;
-  return Fintern (str, obarray);
+  Lisp_Object str = DECODE_SYSTEM (build_string (string));
+  int len = SCHARS (str);
+  Lisp_Object obarray = check_obarray (Vobarray);
+  Lisp_Object tem = oblookup (obarray, SDATA (str), len, len);  
+  /* This code is similar to intern function from lread.c.  */
+  return SYMBOLP (tem) ? tem : Fintern (str, obarray);
 }
 
 /* w32 implementation of get_cache for font backend.


reply via email to

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