diff --git a/src/3rdparty/squirrel/squirrel/squtils.h b/src/3rdparty/squirrel/squirrel/squtils.h index 2c7a343638..87d0473a26 100644 --- a/src/3rdparty/squirrel/squirrel/squtils.h +++ b/src/3rdparty/squirrel/squirrel/squtils.h @@ -93,7 +93,7 @@ public: { _vals[idx].~T(); if(idx < (_size - 1)) { - memmove(static_cast(&_vals[idx]), &_vals[idx+1], sizeof(T) * (_size - (size_t)idx - 1)); + std::move(&_vals[idx + 1], &_vals[_size], &_vals[idx]); } _size--; } diff --git a/src/safeguards.h b/src/safeguards.h index 97c2bc6c45..c8bf2d2e0e 100644 --- a/src/safeguards.h +++ b/src/safeguards.h @@ -49,6 +49,7 @@ #define memcmp SAFEGUARD_DO_NOT_USE_THIS_METHOD #define memcpy SAFEGUARD_DO_NOT_USE_THIS_METHOD +#define memmove SAFEGUARD_DO_NOT_USE_THIS_METHOD #define memset SAFEGUARD_DO_NOT_USE_THIS_METHOD /* Use fgets instead. */ diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 2b80659d47..4beeca6a23 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -426,7 +426,7 @@ public: if (IsSavegameVersionBefore(SLV_85)) { /* We want to insert some liveries somewhere in between. This means some have to be moved. */ - memmove(&c->livery[LS_FREIGHT_WAGON], &c->livery[LS_PASSENGER_WAGON_MONORAIL], (LS_END - LS_FREIGHT_WAGON) * sizeof(c->livery[0])); + std::move_backward(&c->livery[LS_FREIGHT_WAGON - 2], &c->livery[LS_END - 2], &c->livery[LS_END]); c->livery[LS_PASSENGER_WAGON_MONORAIL] = c->livery[LS_MONORAIL]; c->livery[LS_PASSENGER_WAGON_MAGLEV] = c->livery[LS_MAGLEV]; } diff --git a/src/spritecache.cpp b/src/spritecache.cpp index e196ad202b..64effb953a 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -803,7 +803,8 @@ static void CompactSpriteCache() GetSpriteCache(i)->ptr = s->data; // Adjust sprite array entry /* Swap this and the next block */ temp = *s; - memmove(s, next, next->size); + std::byte *p = reinterpret_cast(next); + std::move(p, &p[next->size], reinterpret_cast(s)); s = NextBlock(s); *s = temp;