Fix segfault in -nographic mode, by Stefen Weil.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 21 Jun 2007 23:34:19 +0000 (23:34 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 21 Jun 2007 23:34:19 +0000 (23:34 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2994 c046a42c-6fe2-441c-8c8c-71466251a162

vl.c

diff --git a/vl.c b/vl.c
index b26d7541b97761df9211d8ecaca2e249c5e0ddca..271233a2f2c4a7cb3e55d762daf68a7368ebc7a3 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -4482,6 +4482,34 @@ void pcmcia_info(void)
                     "Empty");
 }
 
+/***********************************************************/
+/* dumb display */
+
+static void dumb_update(DisplayState *ds, int x, int y, int w, int h)
+{
+}
+
+static void dumb_resize(DisplayState *ds, int w, int h)
+{
+}
+
+static void dumb_refresh(DisplayState *ds)
+{
+#if defined(CONFIG_SDL)
+    vga_hw_update();
+#endif
+}
+
+static void dumb_display_init(DisplayState *ds)
+{
+    ds->data = NULL;
+    ds->linesize = 0;
+    ds->depth = 0;
+    ds->dpy_update = dumb_update;
+    ds->dpy_resize = dumb_resize;
+    ds->dpy_refresh = dumb_refresh;
+}
+
 /***********************************************************/
 /* I/O handling */
 
@@ -7884,7 +7912,8 @@ int main(int argc, char **argv)
     /* terminal init */
     memset(&display_state, 0, sizeof(display_state));
     if (nographic) {
-        /* nothing to do */
+        /* nearly nothing to do */
+        dumb_display_init(ds);
     } else if (vnc_display != NULL) {
         vnc_display_init(ds, vnc_display);
     } else {