| 373 | } |
| 374 | |
| 375 | inline void FastMemcpy(void* dst, const void* src, size_t size) { |
| 376 | // clang-format off |
| 377 | switch (size) { |
| 378 | // Most compilers will generate inline code for fixed sizes, |
| 379 | // which is significantly faster for small copies. |
| 380 | case 1: memcpy(dst, src, 1); break; |
| 381 | case 2: memcpy(dst, src, 2); break; |
| 382 | case 3: memcpy(dst, src, 3); break; |
| 383 | case 4: memcpy(dst, src, 4); break; |
| 384 | case 5: memcpy(dst, src, 5); break; |
| 385 | case 6: memcpy(dst, src, 6); break; |
| 386 | case 7: memcpy(dst, src, 7); break; |
| 387 | case 8: memcpy(dst, src, 8); break; |
| 388 | case 9: memcpy(dst, src, 9); break; |
| 389 | case 10: memcpy(dst, src, 10); break; |
| 390 | case 11: memcpy(dst, src, 11); break; |
| 391 | case 12: memcpy(dst, src, 12); break; |
| 392 | case 13: memcpy(dst, src, 13); break; |
| 393 | case 14: memcpy(dst, src, 14); break; |
| 394 | case 15: memcpy(dst, src, 15); break; |
| 395 | case 16: memcpy(dst, src, 16); break; |
| 396 | #if defined(PLATFORM_GOOGLE) || defined(PLATFORM_POSIX) && \ |
| 397 | !defined(IS_MOBILE_PLATFORM) |
| 398 | // On Linux, memmove appears to be faster than memcpy for |
| 399 | // large sizes, strangely enough. |
| 400 | default: memmove(dst, src, size); break; |
| 401 | #else |
| 402 | default: memcpy(dst, src, size); break; |
| 403 | #endif |
| 404 | } |
| 405 | // clang-format on |
| 406 | } |
| 407 | |
| 408 | } // namespace |
| 409 |
no outgoing calls
no test coverage detected