diff --git a/apps/sequence/sequence_store.cpp b/apps/sequence/sequence_store.cpp index ffcd0d0f0..4c1e37382 100644 --- a/apps/sequence/sequence_store.cpp +++ b/apps/sequence/sequence_store.cpp @@ -1,22 +1,25 @@ #include "sequence_store.h" +#include extern "C" { #include #include } -#include namespace Sequence { constexpr const char * SequenceStore::k_sequenceNames[MaxNumberOfSequences]; uint32_t SequenceStore::storeChecksum() { - size_t dataLengthInBytes = MaxNumberOfSequences*sizeof(uint32_t); - assert((dataLengthInBytes & 0x3) == 0); // Assert that dataLengthInBytes is a multiple of 4 + assert((MaxNumberOfSequences*sizeof(uint32_t) & 0x3) == 0); // Assert that dataLengthInBytes is a multiple of 4 uint32_t checksums[MaxNumberOfSequences]; for (int i = 0; i < MaxNumberOfSequences; i++) { checksums[i] = m_sequences[i].checksum(); } - return Ion::crc32((uint32_t *)checksums, dataLengthInBytes/sizeof(uint32_t)); + constexpr int checksumsStoreStorageSize = 2; + uint32_t checksumsStoreStorage[checksumsStoreStorageSize]; + checksumsStoreStorage[0] = Ion::crc32((uint32_t *)checksums, MaxNumberOfSequences); + checksumsStoreStorage[1] = Ion::Storage::sharedStorage()->checksum(); + return Ion::crc32((uint32_t *)checksumsStoreStorage, checksumsStoreStorageSize); } char SequenceStore::symbol() const {