* coding.c (encode_coding_raw_text): Avoid unnecessary test
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 22 Mar 2011 16:20:45 +0000 (09:20 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 22 Mar 2011 16:20:45 +0000 (09:20 -0700)
the first time through the loop, since we know p0 < p1 then.
This also avoids a gcc -Wstrict-overflow warning.

src/ChangeLog
src/coding.c

index a341d1b..45982f6 100644 (file)
@@ -1,5 +1,9 @@
 2011-03-22  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * coding.c (encode_coding_raw_text): Avoid unnecessary test
+       the first time through the loop, since we know p0 < p1 then.
+       This also avoids a gcc -Wstrict-overflow warning.
+
        * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
        leading to a memory leak, possible in functions like
        load_charset_map_from_file that can allocate an unbounded number
index 0c2836c..0596d16 100644 (file)
@@ -5266,11 +5266,12 @@ encode_coding_raw_text (struct coding_system *coding)
                unsigned char str[MAX_MULTIBYTE_LENGTH], *p0 = str, *p1 = str;
 
                CHAR_STRING_ADVANCE (c, p1);
-               while (p0 < p1)
+               do
                  {
                    EMIT_ONE_BYTE (*p0);
                    p0++;
                  }
+               while (p0 < p1);
              }
          }
       else