From 09cae90e6250dee44800e8e43fb8f84096e24bae Mon Sep 17 00:00:00 2001 From: Tim Anderson Date: Thu, 11 Jan 2024 15:52:58 -0700 Subject: [PATCH 1/2] fix issue where fasta metadata and headers weren't loading correctly --- src/AwFmFile.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/AwFmFile.c b/src/AwFmFile.c index f92e35c..89750f8 100644 --- a/src/AwFmFile.c +++ b/src/AwFmFile.c @@ -367,6 +367,14 @@ enum AwFmReturnCode awFmReadIndexFromFile( awFmDeallocIndex(indexData); return AwFmAllocationFailure; } + + elementsRead = fread(&fastaVector->header.charData, sizeof(char), fastaVectorHeaderLength, fileHandle); + if(elementsRead != fastaVectorHeaderLength) { + fclose(fileHandle); + awFmDeallocIndex(indexData); + return AwFmAllocationFailure; + } + fastaVector->metadata.data = realloc(fastaVector->metadata.data, fastaVectorMetadataLength * sizeof(struct FastaVectorMetadata)); if(!fastaVector->metadata.data) { @@ -374,6 +382,14 @@ enum AwFmReturnCode awFmReadIndexFromFile( awFmDeallocIndex(indexData); return AwFmAllocationFailure; } + + elementsRead = fread(&fastaVector->metadata.data, sizeof(struct FastaVectorMetadata), fastaVectorMetadataLength, fileHandle); + if(elementsRead != fastaVectorMetadataLength) { + fclose(fileHandle); + awFmDeallocIndex(indexData); + return AwFmAllocationFailure; + } + fastaVector->header.count = fastaVectorHeaderLength; fastaVector->header.capacity = fastaVectorHeaderLength; fastaVector->metadata.count = fastaVectorMetadataLength; From 6695dc6a18e844ee005aca1f37bd6e89ccf85865 Mon Sep 17 00:00:00 2001 From: Tim Anderson Date: Thu, 11 Jan 2024 15:54:55 -0700 Subject: [PATCH 2/2] set the fastaVector sequence data to null when loaded --- src/AwFmFile.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/AwFmFile.c b/src/AwFmFile.c index 89750f8..ab948b6 100644 --- a/src/AwFmFile.c +++ b/src/AwFmFile.c @@ -343,6 +343,9 @@ enum AwFmReturnCode awFmReadIndexFromFile( // free the sequence buffer in the fastaVector, since it won't be used here fastaVectorStringDealloc(&fastaVector->sequence); + fastaVector->sequence.charData = NULL; + fastaVector->sequence.capacity = 0; + fastaVector->sequence.count = 0; indexData->fastaVector = fastaVector; size_t fastaVectorHeaderLength;