emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/editfns.c


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/src/editfns.c
Date: Wed, 30 Apr 2003 08:05:37 -0400

Index: emacs/src/editfns.c
diff -c emacs/src/editfns.c:1.355 emacs/src/editfns.c:1.356
*** emacs/src/editfns.c:1.355   Fri Apr 11 19:17:42 2003
--- emacs/src/editfns.c Wed Apr 30 08:05:37 2003
***************
*** 3255,3262 ****
    /* We may have to change "%S" to "%s". */
    args[0] = Fcopy_sequence (args[0]);
  
    /* If we start out planning a unibyte result,
!      and later find it has to be multibyte, we jump back to retry.  */
   retry:
  
    format = SDATA (args[0]);
--- 3255,3266 ----
    /* We may have to change "%S" to "%s". */
    args[0] = Fcopy_sequence (args[0]);
  
+   /* GC should never happen here, so abort if it does.  */
+   abort_on_gc++;
+ 
    /* If we start out planning a unibyte result,
!      then discover it has to be multibyte, we jump back to retry.
!      That can only happen from the first large while loop below.  */
   retry:
  
    format = SDATA (args[0]);
***************
*** 3456,3461 ****
--- 3460,3467 ----
        total += thissize + 4;
        }
  
+   abort_on_gc--;
+ 
    /* Now we can no longer jump to retry.
       TOTAL and LONGEST_FORMAT are known for certain.  */
  
***************
*** 3474,3479 ****
--- 3480,3487 ----
  
    /* Scan the format and store result in BUF.  */
    format = SDATA (args[0]);
+   format_start = format;
+   end = format + SBYTES (args[0]);
    maybe_combine_byte = 0;
    while (format != end)
      {




reply via email to

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