[Top][All Lists]
[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)
{