diff options
| -rw-r--r-- | src/moves.c | 3 | ||||
| -rw-r--r-- | src/solve.c | 5 | ||||
| -rw-r--r-- | src/utils.c | 15 |
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 | ||
| 544 | init_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 @@ | |||
| 3 | void | 3 | void |
| 4 | apply_permutation(int *perm, int *set, int n) | 4 | apply_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 | ||
| 19 | int | 18 | int |
| @@ -53,8 +52,8 @@ factorial(int n) | |||
| 53 | void | 52 | void |
| 54 | index_to_perm(int p, int n, int *r) | 53 | index_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 | ||
| 79 | void | 76 | void |
| @@ -143,22 +140,22 @@ int_to_sum_zero_array(int x, int b, int n, int *a) | |||
| 143 | int | 140 | int |
| 144 | invert_digits(int a, int b, int n) | 141 | invert_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 | ||
| 157 | bool | 154 | bool |
| 158 | is_perm(int *a, int n) | 155 | is_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 | ||
