[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);