(svn r624) Merge r377 to trunk:

Remove the memmove special case for MSVC
According to the MSDN it was just plain wrong and memmove was directly used in some places anyway
pull/155/head
tron 20 years ago
parent 01e88bb61d
commit 57c472e093

@ -398,7 +398,7 @@ void NetworkProcessCommands()
assert(_future_seed[0].frame >= _frame_counter);
if (_future_seed[0].frame != _frame_counter) break;
if (_future_seed[0].seed[0] != _sync_seed_1 ||_future_seed[0].seed[1] != _sync_seed_2) NetworkHandleDeSync();
memcpy_overlapping(_future_seed, _future_seed + 1, --_num_future_seed * sizeof(FutureSeeds));
memmove(_future_seed, _future_seed + 1, --_num_future_seed * sizeof(FutureSeeds));
}
}
}

@ -524,7 +524,7 @@ static void CompactSpriteCache()
_sprite_ptr[i] -= size;
// Move the memory
memcpy_overlapping(s+S_HDRSIZE, s+S_HDRSIZE+size, sizeb - S_HDRSIZE );
memmove(s + S_HDRSIZE, s + S_HDRSIZE + size, sizeb - S_HDRSIZE);
// What we just did had the effect of swapping the allocated block with the free block, so we need to update
// the block pointers. First update the allocated one. It is in use.

@ -95,12 +95,6 @@ typedef unsigned int uint32;
typedef unsigned int uint;
#endif
#if defined(_MSC_VER)
#define memcpy_overlapping memcpy
#else
#define memcpy_overlapping memmove
#endif
#ifndef __BEOS__
typedef signed char int8;
typedef signed short int16;

@ -182,14 +182,14 @@ void InjectDparam(int amount)
int32 GetParamInt32()
{
int32 result = GET_DPARAM32(0);
memcpy_overlapping(&_decode_parameters[0], &_decode_parameters[1], sizeof(uint32) * (lengthof(_decode_parameters)-1));
memmove(&_decode_parameters[0], &_decode_parameters[1], sizeof(uint32) * (lengthof(_decode_parameters)-1));
return result;
}
static int64 GetParamInt64()
{
int64 result = GET_DPARAM32(0) + ((uint64)GET_DPARAM32(1) << 32);
memcpy_overlapping(&_decode_parameters[0], &_decode_parameters[2], sizeof(uint32) * (lengthof(_decode_parameters)-2));
memmove(&_decode_parameters[0], &_decode_parameters[2], sizeof(uint32) * (lengthof(_decode_parameters)-2));
return result;
}
@ -197,21 +197,21 @@ static int64 GetParamInt64()
int GetParamInt16()
{
int result = (int16)GET_DPARAM16(0);
memcpy_overlapping(&_decode_parameters[0], &_decode_parameters[1], sizeof(uint32) * (lengthof(_decode_parameters)-1));
memmove(&_decode_parameters[0], &_decode_parameters[1], sizeof(uint32) * (lengthof(_decode_parameters)-1));
return result;
}
int GetParamInt8()
{
int result = (int8)GET_DPARAM8(0);
memcpy_overlapping(&_decode_parameters[0], &_decode_parameters[1], sizeof(uint32) * (lengthof(_decode_parameters)-1));
memmove(&_decode_parameters[0], &_decode_parameters[1], sizeof(uint32) * (lengthof(_decode_parameters)-1));
return result;
}
int GetParamUint16()
{
int result = GET_DPARAM16(0);
memcpy_overlapping(&_decode_parameters[0], &_decode_parameters[1], sizeof(uint32) * (lengthof(_decode_parameters)-1));
memmove(&_decode_parameters[0], &_decode_parameters[1], sizeof(uint32) * (lengthof(_decode_parameters)-1));
return result;
}

@ -126,7 +126,7 @@ void DeleteAnimatedTile(uint tile)
for(ti=_animated_tile_list; ti!=endof(_animated_tile_list); ti++) {
if ( (TileIndex)tile == *ti) {
/* remove the hole */
memcpy_overlapping(ti, ti+1, endof(_animated_tile_list) - 1 - ti);
memmove(ti, ti+1, endof(_animated_tile_list) - 1 - ti);
/* and clear last item */
endof(_animated_tile_list)[-1] = 0;
MarkTileDirtyByTile(tile);

Loading…
Cancel
Save