I suspect that having (multiple) images inline might be the cause of the issue -- do you have any suggestions on how to recreate this in vanilla emacs?Thanks, but I don't have access to a system where these prerequisites can be met. So either someone can reproduce this, debug the problem, and describe the reason for the loop, or I'd need to ask you to do it, if possible. Or, if you can show a recipe for reproducing the problem without installing LaTeX and xenops, I could try reproducing this on the systems to which I have access.
In gdb, I switched to that frame and typed finish, the process hangs. In any lower frame I can successfully finish.Can you describe how you arrived at the conclusion that it infloops in that function?
Can you step in GDB through one iteration of that loop and show the values of variables which cause Emacs never to exit the loop?
I am not sure which variables I should show, as I am having some trouble understanding the exit conditions of that infinite loop. Basically `move_it_in_display_line_to` always returns `MOVE_LINE_CONTINUED`, and below is one iteration of stepping through the loop:
10947 switch (skip)
10990 max_current_x = it->last_visible_x;
10995 if (it->c == '\t')
11030 it->continuation_lines_width +=
it->current_x;
11031 break;
11038 it->current_x = line_start_x;
11039 it->wrap_prefix_width = 0;
11040 line_start_x = 0;
11041 it->hpos = 0;
11042 it->line_number_produced_p = false;
11043 it->current_y += it->max_ascent +
it->max_descent;
11044 ++it->vpos;
11045 last_height = it->max_ascent +
it->max_descent;
11046 it->max_ascent = it->max_descent = 0;
10759 if (op & MOVE_TO_VPOS)
10803 else if (op & MOVE_TO_Y)
10932 else if (BUFFERP (it->object)
10933 && (it->method == GET_FROM_BUFFER
10934 || it->method == GET_FROM_STRETCH)
10945 skip = move_it_in_display_line_to (it, to_charpos,
-1, MOVE_TO_POS);
10947 switch (skip)
#1 0x0000555555622e6c in move_it_to (it=0x7fffffff6df0, to_charpos=218, to_x=-1, to_y=-1, to_vpos=-1, op=8) at xdisp.c:10945The downstream bug report shows a very different (much larger) buffer position as the value of to_charpos (34559). Is that expected? is that significant?
Great catch -- the much larger buffer position might be because I was (incorrectly) working with a larger document. I would say that it is not significant, as I could reproduce the issue with a much smaller document.