[go: nahoru, domu]

Skip to content

Commit

Permalink
add check to make sure that the headers exist before attempting to re…
Browse files Browse the repository at this point in the history
…ad them.

Also, we use the fastavector function to get the header instead of repeating it here.
  • Loading branch information
Sawwave committed Jan 29, 2024
1 parent 0601107 commit 6b37742
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions src/AwFmSearch.c
Original file line number Diff line number Diff line change
Expand Up @@ -250,21 +250,18 @@ enum AwFmReturnCode awFmGetLocalSequencePositionFromIndexPosition(const struct A
}


enum AwFmReturnCode awFmGetHeaderStringFromSequenceNumber(
const struct AwFmIndex *_RESTRICT_ const index, size_t sequenceNumber, char **headerBuffer, size_t *headerLength) {
if(sequenceNumber > index->fastaVector->metadata.count) {
enum AwFmReturnCode awFmGetHeaderStringFromSequenceNumber(const struct AwFmIndex *_RESTRICT_ const index,
size_t sequenceNumber, char **headerBuffer, size_t *headerLength) {
if((index->featureFlags & (1 << AW_FM_FEATURE_FLAG_BIT_FASTA_VECTOR)) == 0){
return AwFmUnsupportedVersionError;
}
else if(sequenceNumber > index->fastaVector->metadata.count) {
return AwFmIllegalPositionError;
}

size_t headerStartOffset = 0;
if(sequenceNumber != 0) {
headerStartOffset = index->fastaVector->metadata.data[sequenceNumber - 1].headerEndPosition;
else{
fastaVectorFastaGetHeader(index->fastaVector,sequenceNumber, headerBuffer,headerLength);
return AwFmSuccess;
}
size_t headerEndPosition = index->fastaVector->metadata.data[sequenceNumber].headerEndPosition;

*headerBuffer = index->fastaVector->header.charData + headerStartOffset;
*headerLength = headerEndPosition - headerStartOffset;
return AwFmSuccess;
}


Expand Down

0 comments on commit 6b37742

Please sign in to comment.