Skip to content

Commit 1ce1d52

Browse files
vpa1977SoapZA
authored andcommitted
BamWriter: use sizeof(uint32_t) increment to swap bytes for big endian architectures.
Closes: #236
1 parent 46ed2fc commit 1ce1d52

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

src/api/internal/bam/BamWriter_p.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ void BamWriterPrivate::WriteAlignment(const BamAlignment& al)
349349
char* cigarData = new char[packedCigarLength]();
350350
std::memcpy(cigarData, packedCigar.data(), packedCigarLength);
351351
if (m_isBigEndian) {
352-
for (size_t i = 0; i < packedCigarLength; ++i) {
352+
for (size_t i = 0; i < packedCigarLength; i += sizeof(uint32_t)) {
353353
BamTools::SwapEndian_32p(&cigarData[i]);
354354
}
355355
}
@@ -500,8 +500,7 @@ void BamWriterPrivate::WriteAlignment(const BamAlignment& al)
500500
char* cigarData = new char[packedCigarLength]();
501501
std::memcpy(cigarData, packedCigar.data(), packedCigarLength);
502502
if (m_isBigEndian) {
503-
for (size_t i = 0; i < packedCigarLength;
504-
++i) { // FIXME: similarly, this should be "i += 4", not "++i"
503+
for (size_t i = 0; i < packedCigarLength; i += sizeof(uint32_t)) {
505504
BamTools::SwapEndian_32p(&cigarData[i]);
506505
}
507506
}

0 commit comments

Comments
 (0)