emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/emacs-23 r100303: Code cleanup in xdisp.c r


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-23 r100303: Code cleanup in xdisp.c regarding string_char_and_length.
Date: Sat, 11 Dec 2010 14:27:13 +0200
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 100303
committer: Eli Zaretskii <address@hidden>
branch nick: emacs-23
timestamp: Sat 2010-12-11 14:27:13 +0200
message:
  Code cleanup in xdisp.c regarding string_char_and_length.
  
   xdisp.c (string_pos_nchars_ahead, c_string_pos)
   (face_before_or_after_it_pos, next_element_from_string)
   (next_element_from_c_string, produce_stretch_glyph): Remove unused
   calculations of maximum string length before calling
   string_char_and_length and STRING_CHAR_AND_LENGTH.
   (string_char_and_length): Update commentary: MAXLEN is no longer
   needed.
modified:
  src/ChangeLog
  src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2010-12-10 18:23:43 +0000
+++ b/src/ChangeLog     2010-12-11 12:27:13 +0000
@@ -1,3 +1,13 @@
+2010-12-11  Eli Zaretskii  <address@hidden>
+
+       * xdisp.c (string_pos_nchars_ahead, c_string_pos)
+       (face_before_or_after_it_pos, next_element_from_string)
+       (next_element_from_c_string, produce_stretch_glyph): Remove unused
+       calculations of maximum string length before calling
+       string_char_and_length and STRING_CHAR_AND_LENGTH.
+       (string_char_and_length): Update commentary: MAXLEN is no longer
+       needed.
+
 2010-12-10  Jan Djärv  <address@hidden>
 
        * keyboard.c (kbd_buffer_get_event): Construct SAVE_SESSION_EVENT

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2010-12-06 06:54:52 +0000
+++ b/src/xdisp.c       2010-12-11 12:27:13 +0000
@@ -1454,11 +1454,10 @@
 }
 
 
-/* Return the next character from STR which is MAXLEN bytes long.
-   Return in *LEN the length of the character.  This is like
-   STRING_CHAR_AND_LENGTH but never returns an invalid character.  If
-   we find one, we return a `?', but with the length of the invalid
-   character.  */
+/* Return the next character from STR.  Return in *LEN the length of
+   the character.  This is like STRING_CHAR_AND_LENGTH but never
+   returns an invalid character.  If we find one, we return a `?', but
+   with the length of the invalid character.  */
 
 static INLINE int
 string_char_and_length (str, len)
@@ -1492,15 +1491,13 @@
 
   if (STRING_MULTIBYTE (string))
     {
-      int rest = SBYTES (string) - BYTEPOS (pos);
       const unsigned char *p = SDATA (string) + BYTEPOS (pos);
       int len;
 
       while (nchars--)
        {
          string_char_and_length (p, &len);
-         p += len, rest -= len;
-         xassert (rest >= 0);
+         p += len;
          CHARPOS (pos) += 1;
          BYTEPOS (pos) += len;
        }
@@ -1545,14 +1542,13 @@
 
   if (multibyte_p)
     {
-      int rest = strlen (s), len;
+      int len;
 
       SET_TEXT_POS (pos, 0, 0);
       while (charpos--)
        {
          string_char_and_length (s, &len);
-         s += len, rest -= len;
-         xassert (rest >= 0);
+         s += len;
          CHARPOS (pos) += 1;
          BYTEPOS (pos) += len;
        }
@@ -3614,7 +3610,6 @@
       if (STRING_MULTIBYTE (it->string))
        {
          const unsigned char *p = SDATA (it->string) + BYTEPOS (pos);
-         int rest = SBYTES (it->string) - BYTEPOS (pos);
          int c, len;
          struct face *face = FACE_FROM_ID (it->f, face_id);
 
@@ -6264,7 +6259,6 @@
        }
       else if (STRING_MULTIBYTE (it->string))
        {
-         int remaining = SBYTES (it->string) - IT_STRING_BYTEPOS (*it);
          const unsigned char *s = (SDATA (it->string)
                                    + IT_STRING_BYTEPOS (*it));
          it->c = string_char_and_length (s, &it->len);
@@ -6300,7 +6294,6 @@
        }
       else if (STRING_MULTIBYTE (it->string))
        {
-         int maxlen = SBYTES (it->string) - IT_STRING_BYTEPOS (*it);
          const unsigned char *s = (SDATA (it->string)
                                    + IT_STRING_BYTEPOS (*it));
          it->c = string_char_and_length (s, &it->len);
@@ -6354,13 +6347,7 @@
       BYTEPOS (it->position) = CHARPOS (it->position) = -1;
     }
   else if (it->multibyte_p)
-    {
-      /* Implementation note: The calls to strlen apparently aren't a
-        performance problem because there is no noticeable performance
-        difference between Emacs running in unibyte or multibyte mode.  */
-      int maxlen = strlen (it->s) - IT_BYTEPOS (*it);
-      it->c = string_char_and_length (it->s + IT_BYTEPOS (*it), &it->len);
-    }
+    it->c = string_char_and_length (it->s + IT_BYTEPOS (*it), &it->len);
   else
     it->c = it->s[IT_BYTEPOS (*it)], it->len = 1;
 
@@ -20917,11 +20904,7 @@
 
       it2 = *it;
       if (it->multibyte_p)
-       {
-         int maxlen = ((IT_BYTEPOS (*it) >= GPT ? ZV : GPT)
-                       - IT_BYTEPOS (*it));
-         it2.c = it2.char_to_display = STRING_CHAR_AND_LENGTH (p, it2.len);
-       }
+       it2.c = it2.char_to_display = STRING_CHAR_AND_LENGTH (p, it2.len);
       else
        {
          it2.c = it2.char_to_display = *p, it2.len = 1;


reply via email to

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