(CopyOverlapped): slightly optimized BlockCopy loop.

This commit is contained in:
morkt
2015-12-05 20:26:36 +04:00
parent f87944b7e1
commit aeea84a693

View File

@@ -73,15 +73,12 @@ namespace GameRes.Utility
public static void CopyOverlapped (byte[] data, int src, int dst, int count) public static void CopyOverlapped (byte[] data, int src, int dst, int count)
{ {
int preceding = dst-src; if (dst > src)
if (preceding > 0)
{ {
while (count > 0) while (count > 0)
{ {
if (preceding > count) int preceding = System.Math.Min (dst - src, count);
preceding = count;
System.Buffer.BlockCopy (data, src, data, dst, preceding); System.Buffer.BlockCopy (data, src, data, dst, preceding);
src = dst;
dst += preceding; dst += preceding;
count -= preceding; count -= preceding;
} }