summaryrefslogtreecommitdiffstats
path: root/SD-VBS/benchmarks/svm
diff options
context:
space:
mode:
authorJoshua Bakita <jbakita@cs.unc.edu>2021-03-07 19:14:19 -0500
committerJoshua Bakita <jbakita@cs.unc.edu>2021-03-07 19:25:21 -0500
commit899765845196007c695a2f858dbe3a41b8db4a2b (patch)
tree98754916059357c0829fd8acc73130565d866ace /SD-VBS/benchmarks/svm
parentafcfb8ee7b005edeba8163f00ce5300cf77ede85 (diff)
SD-VBS: Fix memory leaks and tweak allocation bounds
- Fix leaks in localization, multi_ncut, svm, and texture_synthesis - Lower preallocation for sift and texture_synthesis to match memory profile with QCIF - Remove trailing whitespace in script_localization.c
Diffstat (limited to 'SD-VBS/benchmarks/svm')
-rw-r--r--SD-VBS/benchmarks/svm/src/c/script_svm.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/SD-VBS/benchmarks/svm/src/c/script_svm.c b/SD-VBS/benchmarks/svm/src/c/script_svm.c
index f1ce963..d77291c 100644
--- a/SD-VBS/benchmarks/svm/src/c/script_svm.c
+++ b/SD-VBS/benchmarks/svm/src/c/script_svm.c
@@ -16,7 +16,7 @@ int main(int argc, char* argv[])
16 int iter, N, Ntst, i, j, k, n; 16 int iter, N, Ntst, i, j, k, n;
17 F2D* trn1, *tst1, *trn2, *tst2, *Yoffset; 17 F2D* trn1, *tst1, *trn2, *tst2, *Yoffset;
18 alphaRet* alpha; 18 alphaRet* alpha;
19 F2D *a_result, *result; 19 F2D *a_result, *result = NULL;
20 F2D *s; 20 F2D *s;
21 F2D *b_result; 21 F2D *b_result;
22 F2D *Xtst, *Ytst; 22 F2D *Xtst, *Ytst;
@@ -87,6 +87,10 @@ int main(int argc, char* argv[])
87 tst2 = readFile(im1); 87 tst2 = readFile(im1);
88 88
89 for_each_job { 89 for_each_job {
90 // Clear the results from our last job
91 if (result)
92 fFreeHandle(result);
93
90 alpha = getAlphaFromTrainSet(N, trn1, trn2, iter); 94 alpha = getAlphaFromTrainSet(N, trn1, trn2, iter);
91 a_result = alpha->a_result; 95 a_result = alpha->a_result;
92 b_result = alpha->b_result; 96 b_result = alpha->b_result;
@@ -133,6 +137,14 @@ int main(int argc, char* argv[])
133 fFreeHandle(s); 137 fFreeHandle(s);
134 asubsref(result,n) = maxs; 138 asubsref(result,n) = maxs;
135 } 139 }
140
141 fFreeHandle(Yoffset);
142 fFreeHandle(alpha->a_result);
143 fFreeHandle(alpha->b_result);
144 fFreeHandle(alpha->X);
145 free(alpha);
146 fFreeHandle(Xtst);
147 fFreeHandle(Ytst);
136 } 148 }
137 149
138#ifdef CHECK 150#ifdef CHECK
@@ -154,14 +166,7 @@ int main(int argc, char* argv[])
154 fFreeHandle(tst1); 166 fFreeHandle(tst1);
155 fFreeHandle(trn2); 167 fFreeHandle(trn2);
156 fFreeHandle(tst2); 168 fFreeHandle(tst2);
157 fFreeHandle(Yoffset);
158 fFreeHandle(result); 169 fFreeHandle(result);
159 fFreeHandle(alpha->a_result);
160 fFreeHandle(alpha->b_result);
161 fFreeHandle(alpha->X);
162 free(alpha);
163 fFreeHandle(Xtst);
164 fFreeHandle(Ytst);
165 WRITE_TO_FILE 170 WRITE_TO_FILE
166 return 0; 171 return 0;
167} 172}