Removing dumb_display_init introduced a bug for -nographic mode. QEMU crashs when dpy_update (or dpy_resize) is called, because the corresponding function pointers are zero.
The patch adds dumb_display_init again (and declares it static because it is only used locally in vl.c). Stefan Thiemo Seufer schrieb: > CVSROOT: /sources/qemu > Module name: qemu > Changes by: Thiemo Seufer <ths> 07/06/08 01:57:57 > > Modified files: > . : vl.c vl.h > > Log message: > Don't refresh a graphical screen when it isn't displayed, by Herve > Poussineau. > > CVSWeb URLs: > http://cvs.savannah.gnu.org/viewcvs/qemu/vl.c?cvsroot=qemu&r1=1.304&r2=1.305 > http://cvs.savannah.gnu.org/viewcvs/qemu/vl.h?cvsroot=qemu&r1=1.249&r2=1.250
Index: vl.c =================================================================== RCS file: /sources/qemu/qemu/vl.c,v retrieving revision 1.306 diff -u -b -B -r1.306 vl.c --- vl.c 10 Jun 2007 19:21:04 -0000 1.306 +++ vl.c 11 Jun 2007 20:20:41 -0000 @@ -4481,6 +4481,16 @@ "Empty"); } +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 */ @@ -4804,7 +4814,8 @@ int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence) { if (whence == SEEK_SET) { - /* nothing to do */ + /* nearly nothing to do */ + dumb_display_init(ds); } else if (whence == SEEK_CUR) { pos += qemu_ftell(f); } else {