qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344


From: Shin-ichiro KAWASAKI
Subject: Re: [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
Date: Tue, 20 Jan 2009 00:26:09 +0900
User-agent: Thunderbird 2.0.0.19 (Windows/20081209)

Stefano Stabellini wrote:
Shin-ichiro KAWASAKI wrote:

I'm sending the patch which solves the problem above.
Could anyone evaluate it?




Thanks for spotting the bug and your work on a patch!

However I think the following fix is cleaner: we do not need a
dumb_display_init that creates an empty DisplayChangeListener any more.
We do need a dumb_display_init that allocates a zeroed DisplayState
structure if none else does it.

Please let me know if it also fixes you problem.

It solves my problem finely.  Thank you!

Tested-by: Shin-ichiro KAWASAKI <address@hidden>

Signed-off-by: Stefano Stabellini <address@hidden>

---

diff --git a/vl.c b/vl.c
index bfacdcf..63d954b 100644
--- a/vl.c
+++ b/vl.c
@@ -2775,25 +2775,10 @@ DisplayState *get_displaystate(void)
/* dumb display */ -static void dumb_update(DisplayState *ds, int x, int y, int w, int h)
+static void dumb_display_init(void)
 {
-}
-
-static void dumb_resize(DisplayState *ds)
-{
-}
-
-static void dumb_display_init(DisplayState *ds)
-{
-    DisplayChangeListener *dcl = qemu_mallocz(sizeof(DisplayChangeListener));
-    if (!dcl)
-        exit(1);
-    dcl->dpy_update = dumb_update;
-    dcl->dpy_resize = dumb_resize;
-    dcl->dpy_refresh = NULL;
-    dcl->idle = 1;
-    dcl->gui_timer_interval = 500;
-    register_displaychangelistener(ds, dcl);
+    DisplayState *ds = qemu_mallocz(sizeof(DisplayState));
+    register_displaystate(ds);
 }
/***********************************************************/
@@ -5535,6 +5520,8 @@ int main(int argc, char **argv, char **envp)
         }
     }
+ if (!display_state)
+        dumb_display_init();
     /* just use the first displaystate for the moment */
     ds = display_state;
     /* terminal init */
@@ -5543,8 +5530,6 @@ int main(int argc, char **argv, char **envp)
             fprintf(stderr, "fatal: -nographic can't be used with -curses\n");
             exit(1);
         }
-        /* nearly nothing to do */
-        dumb_display_init(ds);
} else { #if defined(CONFIG_CURSES)
             if (curses) {
@@ -5563,8 +5548,6 @@ int main(int argc, char **argv, char **envp)
                     sdl_display_init(ds, full_screen, no_frame);
 #elif defined(CONFIG_COCOA)
                     cocoa_display_init(ds, full_screen);
-#else
-                    dumb_display_init(ds);
 #endif
             }
     }










reply via email to

[Prev in Thread] Current Thread [Next in Thread]