From 2c6bfa342ac85cd1ec5265b217d7cb33afd91e69 Mon Sep 17 00:00:00 2001 From: J08nY Date: Sun, 7 May 2017 18:06:53 +0200 Subject: 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 --- src/math/curve.c | 4 ++-- src/math/gens.c | 2 -- src/math/types.h | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) (limited to 'src/math') 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, -- cgit v1.3.1