Juri Linkov <[EMAIL PROTECTED]> writes:
> I have reproducible crashes while scrolling the Gnus *Article*
> buffer with partially visible inline images.
>
> Below is a brief debug session. Since these crashes are easily
> reproducible, I can provide more debug info on a request.
Does this patch give good results ?
*** xdisp.c 22 Feb 2005 12:00:11 +0100 1.984
--- xdisp.c 24 Feb 2005 22:35:09 +0100
***************
*** 2538,2544 ****
after-string. */
init_iterator (it, w, charpos, bytepos, NULL, DEFAULT_FACE_ID);
! for (i = 0; i < it->n_overlay_strings; ++i)
{
const char *s = SDATA (it->overlay_strings[i]);
const char *e = s + SBYTES (it->overlay_strings[i]);
--- 2540,2546 ----
after-string. */
init_iterator (it, w, charpos, bytepos, NULL, DEFAULT_FACE_ID);
! for (i = 0; i < it->n_overlay_strings && i < OVERLAY_STRING_CHUNK_SIZE; ++i)
{
const char *s = SDATA (it->overlay_strings[i]);
const char *e = s + SBYTES (it->overlay_strings[i]);
Still, it is suspicious that this loop will only check a maximum of
OVERLAY_STRING_CHUNK_SIZE overlays.
Currently OVERLAY_STRING_CHUNK_SIZE is 3, but since this trap hasn't
been reported before (IIRC), it seems that using more than 3 overlay
strings is very rare.
Increasing OVERLAY_STRING_CHUNK_SIZE can be done a practically no
cost, so I suggest that we increase it to 16, which will be enough
to cover all practical cases, and thus also make it handle the
present case.
So I suggest the following additional patch:
*** dispextern.h 21 Feb 2005 23:11:23 +0100 1.196
--- dispextern.h 24 Feb 2005 22:41:11 +0100
***************
*** 1887,1893 ****
/* Vector of overlays to process. Overlay strings are processed
OVERLAY_STRING_CHUNK_SIZE at a time. */
! #define OVERLAY_STRING_CHUNK_SIZE 3
Lisp_Object overlay_strings[OVERLAY_STRING_CHUNK_SIZE];
/* Total number of overlay strings to process. This can be >
--- 1887,1893 ----
/* Vector of overlays to process. Overlay strings are processed
OVERLAY_STRING_CHUNK_SIZE at a time. */
! #define OVERLAY_STRING_CHUNK_SIZE 16
Lisp_Object overlay_strings[OVERLAY_STRING_CHUNK_SIZE];
/* Total number of overlay strings to process. This can be >
--
Kim F. Storm <[EMAIL PROTECTED]> http://www.cua.dk
_______________________________________________
Emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug