aboutsummaryrefslogtreecommitdiff
path: root/vl.c
diff options
context:
space:
mode:
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-06-21 23:34:19 +0000
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-06-21 23:34:19 +0000
commit2ff897905470e5fb7ca4edccceee01109a968c30 (patch)
tree0d3b02931a0e7fb5e956018af94b3bc86298e87c /vl.c
parentd6eb40f6509657a03842daffbb4bd7a54c9f4ffb (diff)
Fix segfault in -nographic mode, by Stefen Weil.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2994 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/vl.c b/vl.c
index b26d7541b9..271233a2f2 100644
--- a/vl.c
+++ b/vl.c
@@ -4483,6 +4483,34 @@ void pcmcia_info(void)
}
/***********************************************************/
+/* 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 */
#define MAX_IO_HANDLERS 64
@@ -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 {