diff options
Diffstat (limited to 'algo/blast/core/blast_extend.c')
-rw-r--r-- | algo/blast/core/blast_extend.c | 13 |
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)); |