summaryrefslogtreecommitdiff
path: root/algo/blast/core/blast_extend.c
diff options
context:
space:
mode:
Diffstat (limited to 'algo/blast/core/blast_extend.c')
-rw-r--r--algo/blast/core/blast_extend.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/algo/blast/core/blast_extend.c b/algo/blast/core/blast_extend.c
index dcfd895c..6c09e454 100644
--- a/algo/blast/core/blast_extend.c
+++ b/algo/blast/core/blast_extend.c
@@ -1,4 +1,4 @@
-/* $Id: blast_extend.c,v 1.118 2009/01/05 16:54:38 kazimird Exp $
+/* $Id: blast_extend.c,v 1.119 2009/07/30 19:34:30 kazimird Exp $
* ===========================================================================
*
* PUBLIC DOMAIN NOTICE
@@ -30,7 +30,7 @@
#ifndef SKIP_DOXYGEN_PROCESSING
static char const rcsid[] =
- "$Id: blast_extend.c,v 1.118 2009/01/05 16:54:38 kazimird Exp $";
+ "$Id: blast_extend.c,v 1.119 2009/07/30 19:34:30 kazimird Exp $";
#endif /* SKIP_DOXYGEN_PROCESSING */
#include <algo/blast/core/blast_extend.h>
@@ -80,7 +80,7 @@ s_BlastDiagTableFree(BLAST_DiagTable* diag_table)
{
if (diag_table) {
sfree(diag_table->hit_level_array);
-
+ sfree(diag_table->hit_len_array);
sfree(diag_table);
}
return NULL;
@@ -106,6 +106,7 @@ static Int4 s_BlastDiagClear(BLAST_DiagTable * diag)
for (i = 0; i < n; i++) {
diag_struct_array[i].flag = 0;
diag_struct_array[i].last_hit = -diag->window;
+ if (diag->hit_len_array) diag->hit_len_array[i] = 0;
}
return 0;
}
@@ -148,6 +149,10 @@ Int2 BlastExtendWordNew(Uint4 query_length,
diag_table->hit_level_array = (DiagStruct *)
calloc(diag_table->diag_array_length, sizeof(DiagStruct));
+ if (word_params->options->window_size) {
+ diag_table->hit_len_array = (Uint1 *)
+ calloc(diag_table->diag_array_length, sizeof(Uint1));
+ }
if (!diag_table->hit_level_array) {
sfree(ewp);
return -1;
@@ -173,7 +178,7 @@ Blast_ExtendWordExit(Blast_ExtendWord * ewp, Int4 subject_length)
}
} else if (ewp->hash_table) {
if (ewp->hash_table->offset >= INT4_MAX / 4) {
- ewp->hash_table->occupancy = 1;
+ ewp->hash_table->occupancy = 1;
ewp->hash_table->offset = ewp->hash_table->window;
memset(ewp->hash_table->backbone, 0,
ewp->hash_table->num_buckets * sizeof(Int4));