]> xenbits.xen.org Git - xenclient/ioemu-pq.git/commitdiff
intel: Check for resolution before touching the memory
authorJean Guyader <jean.guyader@eu.citrix.com>
Mon, 14 Dec 2009 15:13:46 +0000 (15:13 +0000)
committerJean Guyader <jean.guyader@eu.citrix.com>
Mon, 14 Dec 2009 15:13:46 +0000 (15:13 +0000)
 Also fix couple of warnings.

master/intel

index c9744f61a026316979504b47d83db5d4d9872d8d..4f4dda028b9871a3635daa154313783525ba3edb 100644 (file)
@@ -201,10 +201,10 @@ index 90bd544..e4e27a9 100644
      vga_update_display(s);
 diff --git a/intel.c b/intel.c
 new file mode 100644
-index 0000000..ef279fe
+index 0000000..8f2a225
 --- /dev/null
 +++ b/intel.c
-@@ -0,0 +1,525 @@
+@@ -0,0 +1,528 @@
 +#include <stdio.h>
 +#include <stdlib.h>
 +#include <stdint.h>
@@ -220,6 +220,7 @@ index 0000000..ef279fe
 +#include "qemu-timer.h"
 +#include "console.h"
 +#include "sysemu.h"
++#include "qemu-xen.h"
 +
 +#include "intel_reg.h"
 +#include "intel.h"
@@ -571,7 +572,8 @@ index 0000000..ef279fe
 +static void set_data_pointer(DisplaySurface *surf)
 +{
 +    surf->data = (unsigned char *)(intel_mem + intel_get_surface());
-+    memset(surf->data, 0x00, surf->linesize * IntelY);
++    if (IntelY != 4096)
++        memset(surf->data, 0x00, surf->linesize * IntelY);
 +    surf->data = surf->data +
 +                surf->linesize * ((IntelY - surf->height) / 2) +
 +                4 * ((IntelX - surf->width) / 2);
@@ -616,8 +618,9 @@ index 0000000..ef279fe
 +    intel_have_focus = focus;
 +    if (intel_have_focus) {
 +        intel_get_res(&IntelX, &IntelY, &IntelPitch);
-+        memset((uint8_t *)(intel_mem + intel_get_surface()), 0,
-+                IntelPitch * IntelY);
++        if (IntelX != 4096 && IntelY != 4096)
++            memset((uint8_t *)(intel_mem + intel_get_surface()), 0,
++                    IntelPitch * IntelY);
 +
 +        if (!guest_framebuffer)
 +            intel_force_linear(0);
@@ -630,7 +633,7 @@ index 0000000..ef279fe
 +            focus, IntelX, IntelY, IntelPitch);
 +}
 +
-+void intel_enter_leave(const char *path, void *opaque)
++static void intel_enter_leave(const char *path, void *opaque)
 +{
 +    int state;
 +    char *tmp;