Skip to content

Commit

Permalink
Merge pull request #2863 from STEllAR-GROUP/serialization
Browse files Browse the repository at this point in the history
Replace casts/assignments with hard-coded memcpy operations
  • Loading branch information
sithhell committed Aug 29, 2017
2 parents 1e40878 + 83445a1 commit 48d2b38
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions hpx/traits/serialization_access_data.hpp
Expand Up @@ -96,19 +96,20 @@ namespace hpx { namespace traits
void* dest = &cont[current];
switch (count)
{
case 16:
std::memcpy(dest, address, 16);
break;

case 8:
*static_cast<std::uint64_t*>(dest) =
*static_cast<std::uint64_t const*>(address);
std::memcpy(dest, address, 8);
break;

case 4:
*static_cast<std::uint32_t*>(dest) =
*static_cast<std::uint32_t const*>(address);
std::memcpy(dest, address, 4);
break;

case 2:
*static_cast<std::uint16_t*>(dest) =
*static_cast<std::uint16_t const*>(address);
std::memcpy(dest, address, 2);
break;

case 1:
Expand All @@ -135,19 +136,20 @@ namespace hpx { namespace traits
void const* src = &cont[current];
switch (count)
{
case 16:
std::memcpy(address, src, 16);
break;

case 8:
*static_cast<std::uint64_t*>(address) =
*static_cast<std::uint64_t const*>(src);
std::memcpy(address, src, 8);
break;

case 4:
*static_cast<std::uint32_t*>(address) =
*static_cast<std::uint32_t const*>(src);
std::memcpy(address, src, 4);
break;

case 2:
*static_cast<std::uint16_t*>(address) =
*static_cast<std::uint16_t const*>(src);
std::memcpy(address, src, 2);
break;

case 1:
Expand Down

0 comments on commit 48d2b38

Please sign in to comment.