patch 8.1.2200: crash when memory allocation fails

Problem:    Crash when memory allocation fails.
Solution:   Check for NULL curwin and curbuf. (Christian Brabandt,
            closes #4839)
diff --git a/src/getchar.c b/src/getchar.c
index f9bfab8..07383da 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2059,8 +2059,8 @@
     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 @@
     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