aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/moves.c3
-rw-r--r--src/solve.c5
-rw-r--r--src/utils.c15
3 files changed, 11 insertions, 12 deletions
diff --git a/src/moves.c b/src/moves.c
index 955e8cf..6ed1b5d 100644
--- a/src/moves.c
+++ b/src/moves.c
@@ -481,7 +481,7 @@ init_moves(void)
481 } 481 }
482 482
483 if (read_mtables_file()) 483 if (read_mtables_file())
484 return; 484 goto init_moves_end;
485 485
486 fprintf(stderr, "Cannot load %s, generating it\n", "mtables"); 486 fprintf(stderr, "Cannot load %s, generating it\n", "mtables");
487 487
@@ -541,6 +541,7 @@ init_moves(void)
541 if (!write_mtables_file()) 541 if (!write_mtables_file())
542 fprintf(stderr, "Error writing mtables\n"); 542 fprintf(stderr, "Error writing mtables\n");
543 543
544init_moves_end:
544 for (i = 0; i < NMOVES; i++) 545 for (i = 0; i < NMOVES; i++)
545 free_alg(equiv_alg[i]); 546 free_alg(equiv_alg[i]);
546} 547}
diff --git a/src/solve.c b/src/solve.c
index d4c0f18..44550cc 100644
--- a/src/solve.c
+++ b/src/solve.c
@@ -390,6 +390,7 @@ solve(Cube cube, Step *step, SolveOptions *opts)
390{ 390{
391 bool ready; 391 bool ready;
392 int i, d, op, nt; 392 int i, d, op, nt;
393 Alg *algaux;
393 AlgList *sols; 394 AlgList *sols;
394 Cube c; 395 Cube c;
395 Trans tt[NTRANS]; 396 Trans tt[NTRANS];
@@ -417,7 +418,9 @@ solve(Cube cube, Step *step, SolveOptions *opts)
417 for (i = 0; i < nt; i++) { 418 for (i = 0; i < nt; i++) {
418 c = apply_trans(tt[i], cube); 419 c = apply_trans(tt[i], cube);
419 if (step->is_done(c)) { 420 if (step->is_done(c)) {
420 append_alg(sols, new_alg("")); 421 algaux = new_alg("");
422 append_alg(sols, algaux);
423 free_alg(algaux);
421 return sols; 424 return sols;
422 } 425 }
423 } 426 }
diff --git a/src/utils.c b/src/utils.c
index e0d3268..354e9b0 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -3,8 +3,8 @@
3void 3void
4apply_permutation(int *perm, int *set, int n) 4apply_permutation(int *perm, int *set, int n)
5{ 5{
6 int *aux = malloc(n * sizeof(int));
7 int i; 6 int i;
7 int aux[n];
8 8
9 if (!is_perm(perm, n)) 9 if (!is_perm(perm, n))
10 return; 10 return;
@@ -13,7 +13,6 @@ apply_permutation(int *perm, int *set, int n)
13 aux[i] = set[perm[i]]; 13 aux[i] = set[perm[i]];
14 14
15 memcpy(set, aux, n * sizeof(int)); 15 memcpy(set, aux, n * sizeof(int));
16 free(aux);
17} 16}
18 17
19int 18int
@@ -53,8 +52,8 @@ factorial(int n)
53void 52void
54index_to_perm(int p, int n, int *r) 53index_to_perm(int p, int n, int *r)
55{ 54{
56 int *a = malloc(n * sizeof(int));
57 int i, j, c; 55 int i, j, c;
56 int a[n];
58 57
59 for (i = 0; i < n; i++) 58 for (i = 0; i < n; i++)
60 a[i] = 0; 59 a[i] = 0;
@@ -72,8 +71,6 @@ index_to_perm(int p, int n, int *r)
72 a[j-1] = 1; 71 a[j-1] = 1;
73 p %= factorial(n-i-1); 72 p %= factorial(n-i-1);
74 } 73 }
75
76 free(a);
77} 74}
78 75
79void 76void
@@ -143,22 +140,22 @@ int_to_sum_zero_array(int x, int b, int n, int *a)
143int 140int
144invert_digits(int a, int b, int n) 141invert_digits(int a, int b, int n)
145{ 142{
146 int i, ret, *r = malloc(n * sizeof(int)); 143 int i, ret;
144 int r[n];
147 145
148 int_to_digit_array(a, b, n, r); 146 int_to_digit_array(a, b, n, r);
149 for (i = 0; i < n; i++) 147 for (i = 0; i < n; i++)
150 r[i] = (b-r[i]) % b; 148 r[i] = (b-r[i]) % b;
151 149
152 ret = digit_array_to_int(r, n, b); 150 ret = digit_array_to_int(r, n, b);
153 free(r);
154 return ret; 151 return ret;
155} 152}
156 153
157bool 154bool
158is_perm(int *a, int n) 155is_perm(int *a, int n)
159{ 156{
160 int *aux = malloc(n * sizeof(int));
161 int i; 157 int i;
158 int aux[n];
162 159
163 for (i = 0; i < n; i++) 160 for (i = 0; i < n; i++)
164 aux[i] = 0; 161 aux[i] = 0;
@@ -174,8 +171,6 @@ is_perm(int *a, int n)
174 if (!aux[i]) 171 if (!aux[i])
175 return false; 172 return false;
176 173
177 free(aux);
178
179 return true; 174 return true;
180} 175}
181 176

Generated with cgit - Back to sebastiano.tronto.net