emacs-diffs
[Top][All Lists]
Advanced

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

master 023ff11 1/2: Tweak multibyte parsing loops


From: Paul Eggert
Subject: master 023ff11 1/2: Tweak multibyte parsing loops
Date: Wed, 22 Apr 2020 22:01:04 -0400 (EDT)

branch: master
commit 023ff119fb511e262e7cd64b8abb7482720ac4a6
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Tweak multibyte parsing loops
    
    * src/character.c (parse_str_as_multibyte, str_as_multibyte):
    Let the fast loop run a little longer, fixing what appears
    to be an off-by-1 performance nit.
---
 src/character.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/character.c b/src/character.c
index da09e77..edcec5f 100644
--- a/src/character.c
+++ b/src/character.c
@@ -512,7 +512,7 @@ parse_str_as_multibyte (const unsigned char *str, ptrdiff_t 
len,
 
   if (len >= MAX_MULTIBYTE_LENGTH)
     {
-      const unsigned char *adjusted_endp = endp - MAX_MULTIBYTE_LENGTH;
+      const unsigned char *adjusted_endp = endp - (MAX_MULTIBYTE_LENGTH - 1);
       while (str < adjusted_endp)
        {
          int n = multibyte_length (str, NULL, false, false);
@@ -556,7 +556,7 @@ str_as_multibyte (unsigned char *str, ptrdiff_t len, 
ptrdiff_t nbytes,
 
   if (nbytes >= MAX_MULTIBYTE_LENGTH)
     {
-      unsigned char *adjusted_endp = endp - MAX_MULTIBYTE_LENGTH;
+      unsigned char *adjusted_endp = endp - (MAX_MULTIBYTE_LENGTH - 1);
       while (p < adjusted_endp)
        {
          int n = multibyte_length (p, NULL, false, false);
@@ -585,7 +585,7 @@ str_as_multibyte (unsigned char *str, ptrdiff_t len, 
ptrdiff_t nbytes,
 
   if (nbytes >= MAX_MULTIBYTE_LENGTH)
     {
-      unsigned char *adjusted_endp = endp - MAX_MULTIBYTE_LENGTH;
+      unsigned char *adjusted_endp = endp - (MAX_MULTIBYTE_LENGTH - 1);
       while (p < adjusted_endp)
        {
          int n = multibyte_length (p, NULL, false, false);



reply via email to

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