diff options
author | Sven Hesse | 2011-03-29 12:32:30 +0200 |
---|---|---|
committer | Sven Hesse | 2011-03-29 12:32:30 +0200 |
commit | f5fb832b634f5101dc88f121d9413ef04b5868bf (patch) | |
tree | d1c64d07871be2587a23a6683db1ebc6a05620d7 | |
parent | 4b19c1bf32cd8ae62afa5937b0f4ffaff6154f09 (diff) | |
download | scummvm-rg350-f5fb832b634f5101dc88f121d9413ef04b5868bf.tar.gz scummvm-rg350-f5fb832b634f5101dc88f121d9413ef04b5868bf.tar.bz2 scummvm-rg350-f5fb832b634f5101dc88f121d9413ef04b5868bf.zip |
GOB: Use memmove instead of memcpy in Surface::blit()
Inca 2 actually blits surfaces on themselves...
-rw-r--r-- | engines/gob/surface.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/engines/gob/surface.cpp b/engines/gob/surface.cpp index 8d06ca8d63..c3e8cd9ff5 100644 --- a/engines/gob/surface.cpp +++ b/engines/gob/surface.cpp @@ -420,25 +420,25 @@ void Surface::blit(const Surface &from, int16 left, int16 top, int16 right, int1 return; if ((left == 0) && (_width == from._width) && (_width == width) && (transp == -1)) { - // If these conditions are met, we can directly use memcpy + // If these conditions are met, we can directly use memmove // Pointers to the blit destination and source start points byte *dst = getData(x , y); const byte *src = from.getData(left, top); - memcpy(dst, src, width * height * _bpp); + memmove(dst, src, width * height * _bpp); return; } if (transp == -1) { - // We don't have to look for transparency => we can use memcpy line-wise + // We don't have to look for transparency => we can use memmove line-wise // Pointers to the blit destination and source start points byte *dst = getData(x , y); const byte *src = from.getData(left, top); while (height-- > 0) { - memcpy(dst, src, width * _bpp); + memmove(dst, src, width * _bpp); dst += _width * _bpp; src += from._width * from._bpp; @@ -521,7 +521,7 @@ void Surface::blitScaled(const Surface &from, int16 left, int16 top, int16 right posW = 0; for (uint16 i = 0; i < width; i++, dstRow += _bpp) { - memcpy(dstRow, srcRow, _bpp); + memmove(dstRow, srcRow, _bpp); posW += step; while (posW >= ((frac_t) FRAC_ONE)) { |