Pointer math

Gregg Mattinson gm138242 at scot.canada.sun.com
Tue Jul 2 14:44:31 CDT 2002


changelog: debugger/module.c dlls/dplayx/dplayx_global.c dlls/msvcrt/file.c
           dlls/msvcrt/misc.c dlls/shlwapi/ordinal.c dlls/wininet/http.c
           dlls/winmm/lolvldrv.c files/smb.c graphics/x11drv/dib.c
           memory/global.c memory/selector.c memory/virtual.c
           tools/winedump/pe.c windows/syscolor.c
 - Forte C does not support addition or subtraction with void* pointers, so I 
casted them all to char*.

Gregg Mattinson
Co-op Developer
Sun Microsystems of Canada

-------------- next part --------------
Index: debugger/module.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/debugger/module.c,v
retrieving revision 1.1
diff -u -r1.1 module.c
--- /tmp/T06PaqqF	Tue Jul  2 13:49:57 2002
+++ module.c	Mon Jun 24 16:33:29 2002
@@ -519,8 +519,8 @@
  */
 static int	DEBUG_ModuleCompare(const void* p1, const void* p2)
 {
-    return (*((const DBG_MODULE**)p1))->load_addr -
-	   (*((const DBG_MODULE**)p2))->load_addr;
+    return (char*)(*((const DBG_MODULE**)p1))->load_addr -
+	   (char*)(*((const DBG_MODULE**)p2))->load_addr;
 }
 
 /***********************************************************************
Index: dlls/dplayx/dplayx_global.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/dlls/dplayx/dplayx_global.c,v
retrieving revision 1.1
diff -u -r1.1 dplayx_global.c
--- /tmp/T07ZaivF	Tue Jul  2 13:50:26 2002
+++ dplayx_global.c	Tue Jun 25 08:12:19 2002
@@ -90,7 +90,7 @@
     return;
   }
 
-  lpAddrStart = addr - sizeof(DWORD); /* Find block header */
+  lpAddrStart = (char*)addr - sizeof(DWORD); /* Find block header */
   dwBlockUsed =  ((BYTE*)lpAddrStart - (BYTE*)lpMemArea)/dwBlockSize;
 
   lpMemArea[ dwBlockUsed ].used = 0;
Index: dlls/msvcrt/file.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/dlls/msvcrt/file.c,v
retrieving revision 1.1
diff -u -r1.1 file.c
--- /tmp/T0XIaa_F       Tue Jul  2 14:04:29 2002
+++ file.c      Tue Jul  2 14:02:40 2002
@@ -1771,7 +1771,7 @@
        file->_ptr += pcnt;
        read += pcnt ;
        rcnt -= pcnt ;
-       ptr += pcnt;
+       ptr = (char*)ptr + pcnt;
   } else if(!(file->_flag & MSVCRT__IOREAD )) {
        if(file->_flag & MSVCRT__IORW) {
                file->_flag |= MSVCRT__IOREAD;
@@ -2164,7 +2164,7 @@
        file->_ptr += pcnt;
        written = pcnt;
        wrcnt -= pcnt;
-       ptr += pcnt;
+       ptr = (char*)ptr + pcnt;
   } else if(!(file->_flag & MSVCRT__IOWRT)) {
        if(file->_flag & MSVCRT__IORW) {
                file->_flag |= MSVCRT__IOWRT;
Index: dlls/msvcrt/misc.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/dlls/msvcrt/misc.c,v
retrieving revision 1.1
diff -u -r1.1 misc.c
--- /tmp/T0d0aybG       Tue Jul  2 14:06:00 2002
+++ misc.c      Tue Jul  2 14:04:13 2002
@@ -68,7 +68,7 @@
     {
       if (cf(match, start) == 0)
         return (void *)start; /* found */
-      start += elem_size;
+      start = (char*)start + elem_size;
     } while (--size);
   return NULL;
 }
@@ -86,7 +86,7 @@
     {
       if (cf(match, start) == 0)
         return start; /* found */
-      start += elem_size;
+      start = (char*)start + elem_size;
     } while (--size);
 
   /* not found, add to end */
Index: dlls/shlwapi/ordinal.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/dlls/shlwapi/ordinal.c,v
retrieving revision 1.1
diff -u -r1.1 ordinal.c
--- /tmp/T0gWaaCF	Tue Jul  2 13:51:48 2002
+++ ordinal.c	Tue Jun 25 08:02:16 2002
@@ -1937,7 +1937,7 @@
 	LPVOID z)   /* [in/out] buffer (+0x208 sent to GetFileVersionInfoA) */
 {
     GET_FUNC(pGetFileVersionInfoW, version, "GetFileVersionInfoW", 0);
-    return pGetFileVersionInfoW(w, x, y-0x208, z+0x208);
+    return pGetFileVersionInfoW(w, x, y-0x208, (char*)z+0x208);
 }
 
 /*************************************************************************
@@ -1953,7 +1953,7 @@
 	UINT*  z)   /* [in]   ver length - passed to VerQueryValueA as #4 */
 {
     GET_FUNC(pVerQueryValueW, version, "VerQueryValueW", 0);
-    return pVerQueryValueW(w+0x208, x, y, z);
+    return pVerQueryValueW((char*)w+0x208, x, y, z);
 }
 
 /**************************************************************************
Index: dlls/wininet/http.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/dlls/wininet/http.c,v
retrieving revision 1.1
diff -u -r1.1 http.c
--- /tmp/T0X6aiDF	Tue Jul  2 13:52:17 2002
+++ http.c	Tue Jun 25 08:43:20 2002
@@ -384,7 +384,7 @@
 					   lpwhr->StdHeaders[i].lpszField &&
 					   lpwhr->StdHeaders[i].lpszValue)
                {
-                   cnt += sprintf(lpBuffer + cnt, "%s: %s%s", lpwhr->StdHeaders[i].lpszField, lpwhr->StdHeaders[i].lpszValue,
+                   cnt += sprintf((char*)lpBuffer + cnt, "%s: %s%s", lpwhr->StdHeaders[i].lpszField, lpwhr->StdHeaders[i].lpszValue,
                           index == HTTP_QUERY_RAW_HEADERS_CRLF ? "\r\n" : "\0");
                }
             }
@@ -396,13 +396,13 @@
 						lpwhr->pCustHeaders[i].lpszField &&
 						lpwhr->pCustHeaders[i].lpszValue)
                 {
-                   cnt += sprintf(lpBuffer + cnt, "%s: %s%s",
+                   cnt += sprintf((char*)lpBuffer + cnt, "%s: %s%s",
                     lpwhr->pCustHeaders[i].lpszField, lpwhr->pCustHeaders[i].lpszValue,
 					index == HTTP_QUERY_RAW_HEADERS_CRLF ? "\r\n" : "\0");
                 }
             }
 
-            strcpy(lpBuffer + cnt, index == HTTP_QUERY_RAW_HEADERS_CRLF ? "\r\n" : "");
+            strcpy((char*)lpBuffer + cnt, index == HTTP_QUERY_RAW_HEADERS_CRLF ? "\r\n" : "");
 
            *lpdwBufferLength = cnt + delim;
            bSuccess = TRUE;
Index: dlls/winmm/lolvldrv.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/dlls/winmm/lolvldrv.c,v
retrieving revision 1.1
diff -u -r1.1 lolvldrv.c
--- /tmp/T0TAaGDF	Tue Jul  2 13:52:19 2002
+++ lolvldrv.c	Tue Jun 25 07:54:11 2002
@@ -690,7 +690,7 @@
 	    if (ptr) {
                 SEGPTR segptr = MapLS(ptr);
 		*(LPMIDIOPENDESC*)ptr = mod32;
-		*(LPDWORD)(ptr + sizeof(LPMIDIOPENDESC)) = *lpdwUser;
+		*(LPDWORD)((char*)ptr + sizeof(LPMIDIOPENDESC)) = *lpdwUser;
 		mod16 = (LPMIDIOPENDESC16)((LPSTR)ptr + sizeof(LPMIDIOPENDESC) + 2*sizeof(DWORD));
 
 		mod16->hMidi = mod32->hMidi;
@@ -1067,7 +1067,7 @@
 	    if (ptr) {
                 SEGPTR seg_ptr = MapLS( ptr );
 		*(LPWAVEOPENDESC*)ptr = wod32;
-		*(LPDWORD)(ptr + sizeof(LPWAVEOPENDESC)) = *lpdwUser;
+		*(LPDWORD)((char*)ptr + sizeof(LPWAVEOPENDESC)) = *lpdwUser;
 		wod16 = (LPWAVEOPENDESC16)((LPSTR)ptr + sizeof(LPWAVEOPENDESC) + 2*sizeof(DWORD));
 
 		wod16->hWave = wod32->hWave;
@@ -1626,7 +1626,7 @@
 	    if (ptr) {
                 SEGPTR seg_ptr = MapLS( ptr );
 		*(LPWAVEOPENDESC*)ptr = wod32;
-		*(LPDWORD)(ptr + sizeof(LPWAVEOPENDESC)) = *lpdwUser;
+		*(LPDWORD)((char*)ptr + sizeof(LPWAVEOPENDESC)) = *lpdwUser;
 		wod16 = (LPWAVEOPENDESC16)((LPSTR)ptr + sizeof(LPWAVEOPENDESC) + 2*sizeof(DWORD));
 
 		wod16->hWave = wod32->hWave;
Index: files/smb.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/files/smb.c,v
retrieving revision 1.1
diff -u -r1.1 smb.c
--- /tmp/T0i.aqdG       Tue Jul  2 14:14:04 2002
+++ smb.c       Tue Jul  2 14:11:43 2002
@@ -1107,7 +1107,7 @@
         if(!read)
             break;
         total += read;
-        buffer += read;
+        buffer = (char*)buffer + read;
         offset += read;
         if(total>=bytesToRead)
             break;
Index: graphics/x11drv/dib.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/graphics/x11drv/dib.c,v
retrieving revision 1.1
diff -u -r1.1 dib.c
--- /tmp/T0Ola4jG       Tue Jul  2 14:29:02 2002
+++ dib.c       Tue Jul  2 14:26:28 2002
@@ -353,8 +353,8 @@
     width*=bytes_per_pixel;
     for (y=0; y<height; y++) {
         memcpy(dstbits, srcbits, width);
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -389,8 +389,8 @@
                                ( srcval        & 0x03e0) | /* g */
                                ((srcval >> 10) & 0x001f);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -421,8 +421,8 @@
                                ((srcval >> 4) & 0x0020) | /* g - 1 bit */
                                 (srcval       & 0x001f);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -455,8 +455,8 @@
                                ((srcval >>  4) & 0x0020) | /* g - 1 bit */
                                ((srcval << 11) & 0xf800);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -482,8 +482,8 @@
                         ((srcval >> 12) & 0x07);  /* h - 3 bits */
             dstpixel+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -509,8 +509,8 @@
                         ((srcval >>  2) & 0x07);  /* l - 3 bits */
             dstpixel+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -535,8 +535,8 @@
                         ((srcval << 3) & 0x0000f8) | /* l */
                         ((srcval >> 2) & 0x000007);  /* l - 3 bits */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -561,8 +561,8 @@
                         ((srcval << 19) & 0xf80000) | /* l */
                         ((srcval << 14) & 0x070000);  /* l - 3 bits */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -622,8 +622,8 @@
                         (green << gLeftShift) |
                         (blue  << bLeftShift);
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -658,8 +658,8 @@
                                ( srcval        & 0x07e0) | /* g */
                                ((srcval >> 11) & 0x001f);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -688,8 +688,8 @@
             *((WORD*)dstpixel)=((srcval >> 1) & 0x7fe0) | /* h, g */
                                ( srcval       & 0x001f);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -720,8 +720,8 @@
                                ((srcval >>  1) & 0x03e0) | /* g */
                                ((srcval << 10) & 0x7c00);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -747,8 +747,8 @@
                         ((srcval >> 13) & 0x07);  /* h - 3 bits */
             dstpixel+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -774,8 +774,8 @@
                         ((srcval >>  2) & 0x07);  /* l - 3 bits */
             dstpixel+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -800,8 +800,8 @@
                         ((srcval << 3) & 0x0000f8) | /* l */
                         ((srcval >> 2) & 0x000007);  /* l - 3 bits */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -826,8 +826,8 @@
                         ((srcval << 19) & 0xf80000) | /* l */
                         ((srcval << 14) & 0x070000);  /* l - 3 bits */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -853,8 +853,8 @@
             srcpixel+=3;
             dstpixel+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -904,8 +904,8 @@
             *dstpixel++=dstval;
             srcbyte+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -954,9 +954,9 @@
             dstval|=((srcbyte[2] >> 3) & 0x001f);    /* h */
             *dstpixel++=dstval;
             srcbyte+=3;
-       }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        }
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1006,8 +1006,8 @@
             *dstpixel++=dstval;
             srcbyte+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1057,8 +1057,8 @@
             *dstpixel++=dstval;
             srcbyte+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1098,8 +1098,8 @@
             srcpixel=(LPDWORD)(((char*)srcpixel)+3);
             *dstpixel++=( srcval         & 0x00ffffff); /* h, g, l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1148,8 +1148,8 @@
                         ( srcval         & 0x00ff00) | /* g */
                         ((srcval  << 16) & 0xff0000);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1175,8 +1175,8 @@
                         (srcpixel[2] << rLeftShift);  /* r */
             srcpixel+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1202,8 +1202,8 @@
                         (srcpixel[2] << bLeftShift);  /* b */
             srcpixel+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1229,8 +1229,8 @@
                         ( srcval        & 0x0000ff00) | /* g */
                         ((srcval >> 16) & 0x000000ff);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1262,8 +1262,8 @@
                         (((srcval >> gRightShift) & 0xff) << gLeftShift) |
                         (((srcval >> bRightShift) & 0xff) << bLeftShift);
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1285,8 +1285,8 @@
                         ((srcval >> 6) & 0x03e0) | /* g */
                         ((srcval >> 3) & 0x001f);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1308,8 +1308,8 @@
                         ((srcval >>  6) & 0x03e0) | /* g */
                         ((srcval <<  7) & 0x7c00);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1331,8 +1331,8 @@
                         ((srcval >> 5) & 0x07e0) | /* g */
                         ((srcval >> 3) & 0x001f);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1354,8 +1354,8 @@
                         ((srcval >>  5) & 0x07e0) | /* g */
                         ((srcval <<  8) & 0xf800);  /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1404,8 +1404,8 @@
                         (((srcval >> gRightShift) & gdst) << gLeftShift) |
                         (((srcval >> bRightShift) & bdst) << bLeftShift);
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1442,8 +1442,8 @@
             *((WORD*)dstbyte)++=srcval;                 /* h, g */
             *dstbyte++=srcval >> 16;                    /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1494,8 +1494,8 @@
                                 (srcval         & 0xff00);  /* g */
             *dstbyte++=srcval;                              /* l */
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1523,8 +1523,8 @@
             dstpixel[2]=(srcval >> rRightShift); /* r */
             dstpixel+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1552,8 +1552,8 @@
             dstpixel[2]=(srcval >> bRightShift); /* b */
             dstpixel+=3;
         }
-        srcbits += srclinebytes;
-        dstbits += dstlinebytes;
+        srcbits = (char*)srcbits + srclinebytes;
+        dstbits = (char*)dstbits + dstlinebytes;
     }
 }
 
@@ -1697,7 +1697,7 @@
                 if ((dstwidth&7)!=0) {
                     *dstbyte=dstval;
                 }
-                srcbits -= bmpImage->bytes_per_line;
+                srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                 dstbits += linebytes;
             }
         } else {
@@ -1741,7 +1741,7 @@
                         if ((dstwidth&7)!=0) {
                             *dstbyte=dstval;
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else if (bmpImage->blue_mask==0x7c00) {
@@ -1770,7 +1770,7 @@
                         if ((dstwidth&7)!=0) {
                             *dstbyte=dstval;
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else {
@@ -1803,7 +1803,7 @@
                         if ((dstwidth&7)!=0) {
                             *dstbyte=dstval;
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else if (bmpImage->blue_mask==0xf800) {
@@ -1832,7 +1832,7 @@
                         if ((dstwidth&7)!=0) {
                             *dstbyte=dstval;
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else {
@@ -1880,7 +1880,7 @@
                     if ((dstwidth&7)!=0) {
                         *dstbyte=dstval;
                     }
-                    srcbits -= bmpImage->bytes_per_line;
+                    srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                     dstbits += linebytes;
                 }
             } else {
@@ -1905,7 +1905,7 @@
                     if ((dstwidth&7)!=0) {
                         *dstbyte=dstval;
                     }
-                    srcbits -= bmpImage->bytes_per_line;
+                    srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                     dstbits += linebytes;
                 }
             }
@@ -2071,7 +2071,7 @@
                 if ((dstwidth&1)!=0) {
                     *dstbyte=dstval;
                 }
-                srcbits -= bmpImage->bytes_per_line;
+                srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                 dstbits += linebytes;
             }
         } else {
@@ -2115,7 +2115,7 @@
                         if ((dstwidth&1)!=0) {
                             *dstbyte=dstval;
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else if (bmpImage->blue_mask==0x7c00) {
@@ -2144,7 +2144,7 @@
                         if ((dstwidth&1)!=0) {
                             *dstbyte=dstval;
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else {
@@ -2177,7 +2177,7 @@
                         if ((dstwidth&1)!=0) {
                             *dstbyte=dstval;
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else if (bmpImage->blue_mask==0xf800) {
@@ -2206,7 +2206,7 @@
                         if ((dstwidth&1)!=0) {
                             *dstbyte=dstval;
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else {
@@ -2256,7 +2256,7 @@
                                      srcbyte[1],
                                      srcbyte[0]) << 4);
                     }
-                    srcbits -= bmpImage->bytes_per_line;
+                    srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                     dstbits += linebytes;
                 }
             } else {
@@ -2286,7 +2286,7 @@
                                      srcbyte[1],
                                      srcbyte[2]) << 4);
                     }
-                    srcbits -= bmpImage->bytes_per_line;
+                    srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                     dstbits += linebytes;
                 }
             }
@@ -2332,7 +2332,7 @@
                                      srcbyte[1],
                                      srcbyte[0]) << 4);
                     }
-                    srcbits -= bmpImage->bytes_per_line;
+                    srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                     dstbits += linebytes;
                 }
             } else {
@@ -2362,7 +2362,7 @@
                                      srcbyte[1],
                                      srcbyte[2]) << 4);
                     }
-                    srcbits -= bmpImage->bytes_per_line;
+                    srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                     dstbits += linebytes;
                 }
             }
@@ -2631,7 +2631,7 @@
                                                          srcval.peGreen,
                                                          srcval.peBlue);
                }
-               srcbits -= bmpImage->bytes_per_line;
+               srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                dstbits += linebytes;
            }
        } else {
@@ -2666,7 +2666,7 @@
                                  ((srcval <<  3) & 0xf8) | /* b */
                                  ((srcval >>  2) & 0x07) );
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else if (bmpImage->blue_mask==0x7c00) {
@@ -2686,7 +2686,7 @@
                                  ((srcval >>  7) & 0xf8) | /* b */
                                  ((srcval >> 12) & 0x07) );
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else {
@@ -2710,7 +2710,7 @@
                                  ((srcval <<  3) & 0xf8) | /* b */
                                  ((srcval >>  2) & 0x07) );
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else if (bmpImage->blue_mask==0xf800) {
@@ -2730,7 +2730,7 @@
                                  ((srcval >>  8) & 0xf8) | /* b */
                                  ((srcval >> 13) & 0x07) );
                         }
-                        srcbits -= bmpImage->bytes_per_line;
+                        srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                         dstbits += linebytes;
                     }
                 } else {
@@ -2769,7 +2769,7 @@
                              srcbyte[0]);
                         srcbyte+=bytes_per_pixel;
                     }
-                    srcbits -= bmpImage->bytes_per_line;
+                    srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                     dstbits += linebytes;
                 }
             } else {
@@ -2785,7 +2785,7 @@
                              srcbyte[2]);
                         srcbyte+=bytes_per_pixel;
                     }
-                    srcbits -= bmpImage->bytes_per_line;
+                    srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                     dstbits += linebytes;
                 }
             }
@@ -3857,7 +3857,7 @@
                     dstbyte[2]=srcval.peRed;
                     dstbyte+=3;
                 }
-                srcbits -= bmpImage->bytes_per_line;
+                srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                 dstbits += linebytes;
             }
         } else {
@@ -4436,7 +4436,7 @@
                                 (srcval.peGreen << gShift) |
                                 (srcval.peBlue  << bShift);
                 }
-                srcbits -= bmpImage->bytes_per_line;
+                srcbits = (char*)srcbits - bmpImage->bytes_per_line;
                 dstbits += linebytes;
             }
         } else {
Index: memory/global.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/memory/global.c,v
retrieving revision 1.1
diff -u -r1.1 global.c
--- /tmp/T0lJa4PF	Tue Jul  2 13:53:38 2002
+++ global.c	Mon Jun 24 15:14:14 2002
@@ -1621,7 +1621,7 @@
 #endif
     /* FIXME: should do something for other systems */
     GetSystemInfo(&si);
-    lpmem->dwTotalVirtual  = si.lpMaximumApplicationAddress-si.lpMinimumApplicationAddress;
+    lpmem->dwTotalVirtual  = (char*)si.lpMaximumApplicationAddress-(char*)si.lpMinimumApplicationAddress;
     /* FIXME: we should track down all the already allocated VM pages and substract them, for now arbitrarily remove 64KB so that it matches NT */
     lpmem->dwAvailVirtual  = lpmem->dwTotalVirtual-64*1024;
     memcpy(&cached_memstatus,lpmem,sizeof(MEMORYSTATUS));
Index: memory/selector.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/memory/selector.c,v
retrieving revision 1.1
diff -u -r1.1 selector.c
--- /tmp/T0xeaOQF	Tue Jul  2 13:53:40 2002
+++ selector.c	Tue Jun 25 09:51:39 2002
@@ -168,7 +168,7 @@
     for (i = 0; i < count; i++)
     {
         wine_ldt_set_entry( sel + (i << __AHSHIFT), &entry );
-        wine_ldt_set_base( &entry, wine_ldt_get_base(&entry) + 0x10000 );
+        wine_ldt_set_base( &entry, (char*)wine_ldt_get_base(&entry) + 0x10000);
         /* yep, Windows sets limit like that, not 64K sel units */
         wine_ldt_set_limit( &entry, wine_ldt_get_limit(&entry) - 0x10000 );
     }
Index: memory/virtual.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/memory/virtual.c,v
retrieving revision 1.1
diff -u -r1.1 virtual.c
--- /tmp/T0zsaaRF	Tue Jul  2 13:53:41 2002
+++ virtual.c	Mon Jun 24 15:20:51 2002
@@ -221,7 +221,7 @@
             view = NULL;
             break;
         }
-        if (view->base + view->size > addr) break;
+        if ((char*)view->base + view->size > addr) break;
         view = view->next;
     }
     LeaveCriticalSection(&csVirtual);
Index: tools/winedump/pe.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/tools/winedump/pe.c,v
retrieving revision 1.1
diff -u -r1.1 pe.c
--- /tmp/T06Qa46F	Tue Jul  2 13:54:56 2002
+++ pe.c	Mon Jun 24 13:56:39 2002
@@ -81,8 +81,8 @@
 unsigned long Offset(void* ptr)
 {
     if (ptr < base) {printf("<<<<<ptr below\n");return 0;}
-    if (ptr >= base + total_len) {printf("<<<<<ptr above\n");return 0;}
-    return ptr - base;
+    if (ptr >= (char*)base + total_len) {printf("<<<<<ptr above\n");return 0;}
+    return (char*)ptr - (char*)base;
 }
 
 void*	RVA(unsigned long rva, unsigned long len)
Index: windows/syscolor.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/windows/syscolor.c,v
retrieving revision 1.1
diff -u -r1.1 syscolor.c
--- /tmp/T023aOtG       Tue Jul  2 15:16:19 2002
+++ syscolor.c  Tue Jul  2 15:14:52 2002
@@ -328,9 +328,9 @@
            /* allocate our structure to remember old colors */
            LPVOID pOldCol = HeapAlloc(GetProcessHeap(), 0, sizeof(DWORD)+n*sizeof(HPEN)+n*sizeof(HBRUSH));
            LPVOID p = pOldCol;
-           *(DWORD *)p = n; p += sizeof(DWORD);
-           memcpy(p, SysColorPens, n*sizeof(HPEN)); p += n*sizeof(HPEN);
-           memcpy(p, SysColorBrushes, n*sizeof(HBRUSH)); p += n*sizeof(HBRUSH);
+           *(DWORD *)p = n; p = (char*)p + sizeof(DWORD);
+           memcpy(p, SysColorPens, n*sizeof(HPEN)); p = (char*)p + n*sizeof(HPEN);
+           memcpy(p, SysColorBrushes, n*sizeof(HBRUSH)); p = (char*)p + n*sizeof(HBRUSH);
 
            for (i=0; i < n; i++)
            {
@@ -345,16 +345,16 @@
            LPVOID pOldCol = (LPVOID)n;
            LPVOID p = pOldCol;
            DWORD nCount = *(DWORD *)p;
-           p += sizeof(DWORD);
+           p = (char*)p + sizeof(DWORD);
 
            for (i=0; i < nCount; i++)
            {
                DeleteObject(SysColorPens[i]);
-               SysColorPens[i] = *(HPEN *)p; p += sizeof(HPEN);
+               SysColorPens[i] = *(HPEN *)p; p = (char*)p + sizeof(HPEN);
            }
            for (i=0; i < nCount; i++)
            {
-               SysColorBrushes[i] = *(HBRUSH *)p; p += sizeof(HBRUSH);
+               SysColorBrushes[i] = *(HBRUSH *)p; p = (char*)p + sizeof(HBRUSH);
            }
            /* get rid of storage structure */
            HeapFree(GetProcessHeap(), 0, pOldCol);


More information about the wine-patches mailing list