]> code.delx.au - gnu-emacs/commitdiff
(Faset): Calculate nbytes earlier, to satisfy the now pickier
authorMiles Bader <miles@gnu.org>
Fri, 18 Apr 2003 01:23:43 +0000 (01:23 +0000)
committerMiles Bader <miles@gnu.org>
Fri, 18 Apr 2003 01:23:43 +0000 (01:23 +0000)
PARSE_MULTIBYTE_SEQ.

src/ChangeLog
src/data.c

index 1ac509c26435a38561de0fed0192dfa76f838564..b395f560ffe4330015e70408fe19660ff4a2ba55 100644 (file)
@@ -1,3 +1,8 @@
+2003-04-18  Miles Bader  <miles@gnu.org>
+
+       * data.c (Faset): Calculate nbytes earlier, to satisfy the now
+       pickier PARSE_MULTIBYTE_SEQ.
+
 2003-04-17  Stefan Monnier  <monnier@cs.yale.edu>
 
        * eval.c (For, Fand, Fprogn, un_autoload, do_autoload):
index 5b03f0ebff2a0f59250898731dbc7496ffb50008..b52aff1081922a8f126c09dd87f3a9c3d171699b 100644 (file)
@@ -2029,13 +2029,15 @@ bool-vector.  IDX starts at 0.  */)
     }
   else if (STRING_MULTIBYTE (array))
     {
-      int idxval_byte, prev_bytes, new_bytes;
+      int idxval_byte, prev_bytes, new_bytes, nbytes;
       unsigned char workbuf[MAX_MULTIBYTE_LENGTH], *p0 = workbuf, *p1;
 
       if (idxval < 0 || idxval >= SCHARS (array))
        args_out_of_range (array, idx);
       CHECK_NUMBER (newelt);
 
+      nbytes = SBYTES (array);
+
       idxval_byte = string_char_to_byte (array, idxval);
       p1 = SDATA (array) + idxval_byte;
       PARSE_MULTIBYTE_SEQ (p1, nbytes - idxval_byte, prev_bytes);
@@ -2044,7 +2046,6 @@ bool-vector.  IDX starts at 0.  */)
        {
          /* We must relocate the string data.  */
          int nchars = SCHARS (array);
-         int nbytes = SBYTES (array);
          unsigned char *str;
 
          str = (nbytes <= MAX_ALLOCA