> In addition, I saw the backtrace below, I think that even after your
> patch („Avoid crashes in half-baked emacsclient frames“). I'm not 100%
> sure which commit I was in, sorry. Is this situation still possible
> after your patch? I can try to reproduce the crash but I'm seeing much
> more often the previous 2 new bugs I mentioned.
I don't know if it's the same scenario. If you show the recipe, I
might be able to determine that. Is w->desired_matrix a NULL pointer
again?
I could reproduce it again. I don't know what's involved, but this is what I did when it crashed.
Run M-x debug
Go to other window, and eval (recurse) there
Open new frame
Close it, and close the first frame too (close all frames)
I got to the point when I couldn't open a new emacsclient frame. The server complained (Lisp nesting exceeds ‘max-lisp-eval-depth’: 1633) and the new emacsclient waited (black window) but couldn't start and finished.
After trying to open still another one, it crashed.
Yes, w->desired_matrix is null.
Quit
(gdb) p w
$11 = (struct window *) 0x5555562f5148
(gdb) p *w
$12 = {
header = {
size = 4611686018612097049
},
frame = XIL(0x55555617fd35),
next = XIL(0),
prev = XIL(0x5555560806c5),
parent = XIL(0),
normal_lines = XIL(0x7ffff2bafdc7),
normal_cols = XIL(0x7ffff2bafdbf),
new_total = make_fixnum(0),
new_normal = make_fixnum(0),
new_pixel = make_fixnum(0),
contents = XIL(0x5555561febd5),
old_buffer = XIL(0),
start = XIL(0x5555562f5355),
pointm = XIL(0x5555562f5385),
old_pointm = XIL(0x5555563a9c2d),
temslot = XIL(0),
vertical_scroll_bar = XIL(0),
vertical_scroll_bar_type = XIL(0x30),
horizontal_scroll_bar = XIL(0),
horizontal_scroll_bar_type = XIL(0x30),
display_table = XIL(0),
dedicated = XIL(0),
combination_limit = XIL(0),
window_parameters = XIL(0),
cursor_type = XIL(0x30),
mode_line_help_echo = XIL(0),
current_matrix = 0x0,
desired_matrix = 0x0,
prev_buffers = XIL(0),
next_buffers = XIL(0),
use_time = 0,
sequence_number = 30,
change_stamp = 0,
pixel_left = 0,
pixel_top = 24,
left_col = 0,
top_line = 24,
pixel_width = 80,
pixel_height = 1,
old_pixel_width = 0,
old_pixel_height = 0,
old_body_pixel_width = 0,
old_body_pixel_height = 0,
total_cols = 80,
total_lines = 1,
hscroll = 0,
min_hscroll = 0,
hscroll_whole = 0,
last_modified = 0,
last_overlay_modified = 0,
last_point = 0,
last_mark = 0,
base_line_number = 0,
base_line_pos = 0,
column_number_displayed = -1,
nrows_scale_factor = 1,
ncols_scale_factor = 1,
--Type <RET> for more, q to quit, c to continue without paging--
cursor = {
x = 0,
y = 0,
hpos = 0,
vpos = -1
},
phys_cursor = {
x = 0,
y = 0,
hpos = 0,
vpos = 0
},
output_cursor = {
x = 0,
y = 0,
hpos = 0,
vpos = 0
},
last_cursor_vpos = 0,
left_fringe_width = -1,
right_fringe_width = -1,
left_margin_cols = 0,
right_margin_cols = 0,
scroll_bar_width = -1,
scroll_bar_height = -1,
mode_line_height = -1,
header_line_height = -1,
tab_line_height = -1,
window_end_pos = 0,
window_end_vpos = 0,
mini = true,
horizontal = false,
update_mode_line = true,
last_had_star = false,
start_at_line_beg = false,
force_start = false,
optional_new_start = false,
phys_cursor_on_p = false,
cursor_off_p = false,
last_cursor_off_p = false,
must_be_updated_p = false,
pseudo_window_p = false,
fringes_outside_margins = false,
fringes_persistent = false,
scroll_bars_persistent = false,
window_end_valid = false,
redisplay = true,
suspend_auto_hscroll = false,
preserve_vscroll_p = false,
vscroll = 0,
window_end_bytepos = 0
}
(gdb)