aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2018-05-18 11:39:43 +0100
committerPeter Maydell <peter.maydell@linaro.org>2018-05-18 11:39:43 +0100
commit30d9081d646cbcb37341738d19e29bf350f3dd66 (patch)
tree5a4fb34fb447c09161144ba57c46c15d1536b6bc
parent681299482681bd56c9628c9a994ab16c6860c358 (diff)
parente8dcb8ae5121965ac8c89e6b277ac127e9d08452 (diff)
downloadqemu-30d9081d646cbcb37341738d19e29bf350f3dd66.zip
qemu-30d9081d646cbcb37341738d19e29bf350f3dd66.tar.gz
qemu-30d9081d646cbcb37341738d19e29bf350f3dd66.tar.bz2
Merge remote-tracking branch 'remotes/kraxel/tags/ui-20180518-pull-request' into staging
ui: bugfixes, move x11 dependency to modules. # gpg: Signature made Fri 18 May 2018 08:40:41 BST # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/ui-20180518-pull-request: sdl: Move use of surface pointer below check for whether it is NULL ui: add x_keymap.o to modules console: Avoid segfault in screendump Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--hw/display/Makefile.objs2
-rw-r--r--ui/Makefile.objs11
-rw-r--r--ui/console.c5
-rw-r--r--ui/sdl2-2d.c6
4 files changed, 17 insertions, 7 deletions
diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
index 3c7c75b..11321e4 100644
--- a/hw/display/Makefile.objs
+++ b/hw/display/Makefile.objs
@@ -20,6 +20,8 @@ common-obj-$(CONFIG_MILKYMIST) += milkymist-vgafb.o
common-obj-$(CONFIG_ZAURUS) += tc6393xb.o
common-obj-$(CONFIG_MILKYMIST_TMU2) += milkymist-tmu2.o
+milkymist-tmu2.o-cflags := $(X11_CFLAGS)
+milkymist-tmu2.o-libs := $(X11_LIBS)
obj-$(CONFIG_OMAP) += omap_dss.o
obj-$(CONFIG_OMAP) += omap_lcdc.o
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index cc78434..00f6976 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -15,10 +15,6 @@ common-obj-$(CONFIG_COCOA) += cocoa.o
common-obj-$(CONFIG_VNC) += $(vnc-obj-y)
common-obj-$(call lnot,$(CONFIG_VNC)) += vnc-stubs.o
-common-obj-$(CONFIG_X11) += x_keymap.o
-x_keymap.o-cflags := $(X11_CFLAGS)
-x_keymap.o-libs := $(X11_LIBS)
-
# ui-sdl module
common-obj-$(CONFIG_SDL) += sdl.mo
ifeq ($(CONFIG_SDLABI),1.2)
@@ -46,6 +42,13 @@ gtk.mo-objs += gtk-gl-area.o
endif
endif
+ifeq ($(CONFIG_X11),y)
+sdl.mo-objs += x_keymap.o
+gtk.mo-objs += x_keymap.o
+x_keymap.o-cflags := $(X11_CFLAGS)
+x_keymap.o-libs := $(X11_LIBS)
+endif
+
common-obj-$(CONFIG_CURSES) += curses.mo
curses.mo-objs := curses.o
curses.mo-cflags := $(CURSES_CFLAGS)
diff --git a/ui/console.c b/ui/console.c
index 945f05d..ef1247f 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -372,6 +372,11 @@ void qmp_screendump(const char *filename, bool has_device, const char *device,
graphic_hw_update(con);
surface = qemu_console_surface(con);
+ if (!surface) {
+ error_setg(errp, "no surface");
+ return;
+ }
+
ppm_save(filename, surface, errp);
}
diff --git a/ui/sdl2-2d.c b/ui/sdl2-2d.c
index 1f34817..8548440 100644
--- a/ui/sdl2-2d.c
+++ b/ui/sdl2-2d.c
@@ -36,9 +36,7 @@ void sdl2_2d_update(DisplayChangeListener *dcl,
struct sdl2_console *scon = container_of(dcl, struct sdl2_console, dcl);
DisplaySurface *surf = qemu_console_surface(dcl->con);
SDL_Rect rect;
- size_t surface_data_offset = surface_bytes_per_pixel(surf) * x +
- surface_stride(surf) * y;
-
+ size_t surface_data_offset;
assert(!scon->opengl);
if (!surf) {
@@ -48,6 +46,8 @@ void sdl2_2d_update(DisplayChangeListener *dcl,
return;
}
+ surface_data_offset = surface_bytes_per_pixel(surf) * x +
+ surface_stride(surf) * y;
rect.x = x;
rect.y = y;
rect.w = w;