diff options
| author | J08nY | 2017-05-07 18:06:53 +0200 |
|---|---|---|
| committer | J08nY | 2017-05-07 18:06:53 +0200 |
| commit | 2c6bfa342ac85cd1ec5265b217d7cb33afd91e69 (patch) | |
| tree | 0b3c371c7c033b713f5c8f57e774b4f56b97e41e /src/math | |
| parent | 2fe84534d7cfa5a2aebd8877222871b54e7c80c5 (diff) | |
| download | ecgen-2c6bfa342ac85cd1ec5265b217d7cb33afd91e69.tar.gz ecgen-2c6bfa342ac85cd1ec5265b217d7cb33afd91e69.tar.zst ecgen-2c6bfa342ac85cd1ec5265b217d7cb33afd91e69.zip | |
Fixed unrolls / unique generator curve generaton
- Also added some tests to catch some regressions like this early
- Fixed double free in gens, also some funky stuff with gunclone
and obj_free in curve_free
Diffstat (limited to 'src/math')
| -rw-r--r-- | src/math/curve.c | 4 | ||||
| -rw-r--r-- | src/math/gens.c | 2 | ||||
| -rw-r--r-- | src/math/types.h | 2 |
3 files changed, 3 insertions, 5 deletions
diff --git a/src/math/curve.c b/src/math/curve.c index 633cf27..969e628 100644 --- a/src/math/curve.c +++ b/src/math/curve.c @@ -66,6 +66,8 @@ curve_t *curve_new_clone(const curve_t *src) { void curve_free(curve_t **curve) { if (*curve) { seed_free(&(*curve)->seed); + points_free_deep(&(*curve)->generators, (*curve)->ngens); + points_free_deep(&(*curve)->points, (*curve)->npoints); if ((*curve)->curve) { // TODO, this is possibly dangerous... @@ -88,8 +90,6 @@ void curve_free(curve_t **curve) { gunclone((*curve)->order); } - points_free_deep(&(*curve)->generators, (*curve)->ngens); - points_free_deep(&(*curve)->points, (*curve)->npoints); pari_free(*curve); *curve = NULL; } diff --git a/src/math/gens.c b/src/math/gens.c index 5965f9a..119c22b 100644 --- a/src/math/gens.c +++ b/src/math/gens.c @@ -6,8 +6,6 @@ #include "point.h" static int gens_put(curve_t *curve, GEN generators, long len) { - points_free_deep(&curve->generators, curve->ngens); - curve->generators = points_new((size_t)len); curve->ngens = (size_t)len; diff --git a/src/math/types.h b/src/math/types.h index 64b9c99..ab4b224 100644 --- a/src/math/types.h +++ b/src/math/types.h @@ -63,7 +63,7 @@ typedef struct { * @brief */ typedef enum { - OFFSET_SEED, + OFFSET_SEED = 0, OFFSET_FIELD, OFFSET_A, OFFSET_B, |
