@@ -1338,18 +1338,21 @@ namespace Aws
13381338 auto partResult = hash->GetHash ();
13391339 auto partData = partResult.GetResult ();
13401340
1341- auto partCrc = isCRC64 ?
1342- *reinterpret_cast <const unsigned long long *>(partData.GetUnderlyingData ()) :
1343- *reinterpret_cast <const unsigned int *>(partData.GetUnderlyingData ());
1344-
13451341 if (combinedChecksum == 0 ) {
1346- combinedChecksum = partCrc;
1342+ if (isCRC64) {
1343+ combinedChecksum = *reinterpret_cast <const unsigned long long *>(partData.GetUnderlyingData ());
1344+ } else {
1345+ combinedChecksum = *reinterpret_cast <const unsigned int *>(partData.GetUnderlyingData ());
1346+ }
13471347 } else {
13481348 if (m_transferConfig.checksumAlgorithm == S3::Model::ChecksumAlgorithm::CRC32) {
1349- combinedChecksum = Aws::Crt::Checksum::CombineCRC32 (combinedChecksum, partCrc, partSize);
1349+ auto partCrc = *reinterpret_cast <const unsigned int *>(partData.GetUnderlyingData ());
1350+ combinedChecksum = Aws::Crt::Checksum::CombineCRC32 (static_cast <uint32_t >(combinedChecksum), partCrc, partSize);
13501351 } else if (m_transferConfig.checksumAlgorithm == S3::Model::ChecksumAlgorithm::CRC32C) {
1351- combinedChecksum = Aws::Crt::Checksum::CombineCRC32C (combinedChecksum, partCrc, partSize);
1352+ auto partCrc = *reinterpret_cast <const unsigned int *>(partData.GetUnderlyingData ());
1353+ combinedChecksum = Aws::Crt::Checksum::CombineCRC32C (static_cast <uint32_t >(combinedChecksum), partCrc, partSize);
13521354 } else if (isCRC64) {
1355+ auto partCrc = *reinterpret_cast <const unsigned long long *>(partData.GetUnderlyingData ());
13531356 combinedChecksum = Aws::Crt::Checksum::CombineCRC64NVME (combinedChecksum, partCrc, partSize);
13541357 }
13551358 }
0 commit comments