diff options
Diffstat (limited to 'src/getchar.c')
-rw-r--r-- | src/getchar.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/getchar.c b/src/getchar.c index f9bfab8297..07383da2ca 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -2059,8 +2059,8 @@ f_getcharmod(typval_T *argvars UNUSED, typval_T *rettv) void parse_queued_messages(void) { - int old_curwin_id = curwin->w_id; - int old_curbuf_fnum = curbuf->b_fnum; + int old_curwin_id; + int old_curbuf_fnum; int i; int save_may_garbage_collect = may_garbage_collect; static int entered = 0; @@ -2071,6 +2071,14 @@ parse_queued_messages(void) if (updating_screen) return; + // If memory allocation fails during startup we'll exit but curbuf or + // curwin could be NULL. + if (curbuf == NULL || curwin == NULL) + return; + + old_curbuf_fnum = curbuf->b_fnum; + old_curwin_id = curwin->w_id; + ++entered; // may_garbage_collect is set in main_loop() to do garbage collection when |