diff options
author | Alan Coopersmith <alan.coopersmith@sun.com> | 2007-02-02 14:44:55 -0800 |
---|---|---|
committer | Keith Packard <keithp@guitar.keithp.com> | 2007-02-17 17:14:33 -0800 |
commit | 8a16682892dd73e1b17955ded89a74c077d54f7f (patch) | |
tree | 8dd0ecd5a100eecafa8f97670a193848253de7ae | |
parent | 33c2d2ce8ae00d89b91100cd5d7aba4b18b4117d (diff) |
Fix bus error on startup in 64-bit Xephyr
hostx_get_visual_masks takes unsigned long * arguments, but was being
passed pointers to CARD32's.
(cherry picked from commit 5dcad9e9d7d9993d65f989219bee94a060bbf476)
-rw-r--r-- | hw/kdrive/ephyr/ephyr.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c index 7c39af361..6f2e3deb4 100644 --- a/hw/kdrive/ephyr/ephyr.c +++ b/hw/kdrive/ephyr/ephyr.c @@ -75,7 +75,8 @@ Bool ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv) { int width = 640, height = 480; - + unsigned long redMask, greenMask, blueMask; + if (hostx_want_screen_size(&width, &height) || !screen->width || !screen->height) { @@ -127,30 +128,24 @@ ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv) { screen->fb[0].depth = 15; screen->fb[0].bitsPerPixel = 16; - - hostx_get_visual_masks (&screen->fb[0].redMask, - &screen->fb[0].greenMask, - &screen->fb[0].blueMask); - } else if (screen->fb[0].depth <= 16) { screen->fb[0].depth = 16; screen->fb[0].bitsPerPixel = 16; - - hostx_get_visual_masks (&screen->fb[0].redMask, - &screen->fb[0].greenMask, - &screen->fb[0].blueMask); } else { screen->fb[0].depth = 24; screen->fb[0].bitsPerPixel = 32; - - hostx_get_visual_masks (&screen->fb[0].redMask, - &screen->fb[0].greenMask, - &screen->fb[0].blueMask); } + + hostx_get_visual_masks (&redMask, &greenMask, &blueMask); + + screen->fb[0].redMask = (Pixel) redMask; + screen->fb[0].greenMask = (Pixel) greenMask; + screen->fb[0].blueMask = (Pixel) blueMask; + } scrpriv->randr = screen->randr; |