Multiple *ptr++ constructs in one expression have undefined behaviour,
moved them out of the expression.

diff --git a/objects/dib.c b/objects/dib.c
index 632d8a5..6aaa51b 100644
--- a/objects/dib.c
+++ b/objects/dib.c
@@ -559,10 +559,11 @@
                             LPBYTE srcbits = sbits;
 
                             for( y = 0; y < lines; y++) {
-                                for( x = 0; x < srcwidth; x++ )
-                                    *dstbits++ = ((*srcbits++ >> 3) & bmask) |
-                                                 (((WORD)*srcbits++ << 2) & gmask) |
-                                                 (((WORD)*srcbits++ << 7) & rmask);
+                                for( x = 0; x < srcwidth; x++, srcbits += 3)
+                                    *dstbits++ = ((srcbits[0] >> 3) & bmask) |
+                                                 (((WORD)srcbits[1] << 2) & gmask) |
+                                                 (((WORD)srcbits[2] << 7) & rmask);
+
                                 dstbits = (LPWORD)(dbits+=dstwidthb);
                                 srcbits = (sbits += srcwidthb);
                             }