Compile most Xen files only once
[qemu] / hw / cirrus_vga_rop.h
index fbee6ed..39a7b72 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * QEMU Cirrus CLGD 54xx VGA Emulator.
- * 
+ *
  * Copyright (c) 2004 Fabrice Bellard
- * 
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
@@ -31,6 +31,12 @@ glue(cirrus_bitblt_rop_fwd_, ROP_NAME)(CirrusVGAState *s,
     int x,y;
     dstpitch -= bltwidth;
     srcpitch -= bltwidth;
+
+    if (dstpitch < 0 || srcpitch < 0) {
+        /* is 0 valid? srcpitch == 0 could be useful */
+        return;
+    }
+
     for (y = 0; y < bltheight; y++) {
         for (x = 0; x < bltwidth; x++) {
             ROP_OP(*dst, *src);
@@ -76,7 +82,7 @@ glue(glue(cirrus_bitblt_rop_fwd_transp_, ROP_NAME),_8)(CirrusVGAState *s,
         for (x = 0; x < bltwidth; x++) {
            p = *dst;
             ROP_OP(p, *src);
-           if (p != s->gr[0x34]) *dst = p;
+           if (p != s->vga.gr[0x34]) *dst = p;
             dst++;
             src++;
         }
@@ -99,7 +105,7 @@ glue(glue(cirrus_bitblt_rop_bkwd_transp_, ROP_NAME),_8)(CirrusVGAState *s,
         for (x = 0; x < bltwidth; x++) {
            p = *dst;
             ROP_OP(p, *src);
-           if (p != s->gr[0x34]) *dst = p;
+           if (p != s->vga.gr[0x34]) *dst = p;
             dst--;
             src--;
         }
@@ -124,7 +130,7 @@ glue(glue(cirrus_bitblt_rop_fwd_transp_, ROP_NAME),_16)(CirrusVGAState *s,
            p2 = *(dst+1);
             ROP_OP(p1, *src);
             ROP_OP(p2, *(src+1));
-           if ((p1 != s->gr[0x34]) || (p2 != s->gr[0x35])) {
+           if ((p1 != s->vga.gr[0x34]) || (p2 != s->vga.gr[0x35])) {
                *dst = p1;
                *(dst+1) = p2;
            }
@@ -152,7 +158,7 @@ glue(glue(cirrus_bitblt_rop_bkwd_transp_, ROP_NAME),_16)(CirrusVGAState *s,
            p2 = *dst;
             ROP_OP(p1, *(src-1));
             ROP_OP(p2, *src);
-           if ((p1 != s->gr[0x34]) || (p2 != s->gr[0x35])) {
+           if ((p1 != s->vga.gr[0x34]) || (p2 != s->vga.gr[0x35])) {
                *(dst-1) = p1;
                *dst = p2;
            }