diff options
Diffstat (limited to 'src/math/curve.c')
| -rw-r--r-- | src/math/curve.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/math/curve.c b/src/math/curve.c index 1703f78..812dbcc 100644 --- a/src/math/curve.c +++ b/src/math/curve.c @@ -41,6 +41,9 @@ curve_t *curve_copy(curve_t *src, curve_t *dest) { void curve_free(curve_t **curve) { if (*curve) { seed_free(&(*curve)->seed); + if ((*curve)->curve) { + obj_free((*curve)->curve); + } points_free_deep(&(*curve)->generators, (*curve)->ngens); points_free_deep(&(*curve)->points, (*curve)->npoints); pari_free(*curve); @@ -49,6 +52,11 @@ void curve_free(curve_t **curve) { } int curve_any(curve_t *curve, config_t *cfg, arg_t *args) { + if (curve->curve) { + obj_free(curve->curve); + curve->curve = NULL; + } + pari_sp ltop = avma; GEN v = gen_0; switch (typ(curve->field)) { |
