Skip to content

Commit

Permalink
Replace casts/assignments with hard-coded memcpy operations
Browse files Browse the repository at this point in the history
  • Loading branch information
hkaiser committed Aug 23, 2017
1 parent 027ac11 commit 83445a1
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 83445a1

Please sign in to comment.