blob: 4397a56df8f3debac93f85719c18414f43ac61ff (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
/* $Id: gapinfo.c,v 1.7 2003/08/11 15:02:00 dondosha Exp $
* ===========================================================================
*
* PUBLIC DOMAIN NOTICE
* National Center for Biotechnology Information
*
* This software/database is a "United States Government Work" under the
* terms of the United States Copyright Act. It was written as part of
* the author's offical duties as a United States Government employee and
* thus cannot be copyrighted. This software/database is freely available
* to the public for use. The National Library of Medicine and the U.S.
* Government have not placed any restriction on its use or reproduction.
*
* Although all reasonable efforts have been taken to ensure the accuracy
* and reliability of the software and data, the NLM and the U.S.
* Government do not and cannot warrant the performance or results that
* may be obtained by using this software or data. The NLM and the U.S.
* Government disclaim all warranties, express or implied, including
* warranties of performance, merchantability or fitness for any particular
* purpose.
*
* Please cite the author in any work or product based on this material.
*
* ===========================================================================*/
/*****************************************************************************
File name: gapinfo.c
Author: Ilya Dondoshansky
Contents: Initialization and freeing of structures for gapped alignment
******************************************************************************
* $Revision: 1.7 $
* */
static char const rcsid[] = "$Id: gapinfo.c,v 1.7 2003/08/11 15:02:00 dondosha Exp $";
#include <algo/blast/core/gapinfo.h>
GapStateArrayStruct*
GapStateFree(GapStateArrayStruct* state_struct)
{
GapStateArrayStruct* next;
while (state_struct)
{
next = state_struct->next;
sfree(state_struct->state_array);
sfree(state_struct);
state_struct = next;
}
return NULL;
}
/*
Allocates an EditScriptPtr and puts it on the end of
the chain of EditScriptPtr's. Returns a pointer to the
new one.
*/
GapEditScript*
GapEditScriptNew(GapEditScript* old)
{
GapEditScript* new;
new = (GapEditScript*) calloc(1, sizeof(GapEditScript));
if (old == NULL)
return new;
while (old->next != NULL)
{
old = old->next;
}
old->next = new;
return new;
}
GapEditScript*
GapEditScriptDelete(GapEditScript* old)
{
GapEditScript* next;
while (old)
{
next = old->next;
sfree(old);
old = next;
}
return old;
}
GapEditBlock*
GapEditBlockNew(Int4 start1, Int4 start2)
{
GapEditBlock* edit_block;
edit_block = (GapEditBlock*) calloc(1, sizeof(GapEditBlock));
edit_block->start1 = start1;
edit_block->start2 = start2;
return edit_block;
}
GapEditBlock*
GapEditBlockDelete(GapEditBlock* edit_block)
{
if (edit_block == NULL)
return NULL;
edit_block->esp = GapEditScriptDelete(edit_block->esp);
sfree(edit_block);
return edit_block;
}
|