diff options
| author | J08nY | 2017-04-06 16:26:26 +0200 |
|---|---|---|
| committer | J08nY | 2017-04-06 16:56:45 +0200 |
| commit | d4a152b9daf665db62e3e30ca40f3cf94a1a30af (patch) | |
| tree | ec06a8e9eaa76276e5df1a5a4e5ed8cab6b12a38 /src | |
| parent | 6ef98279d0a9b9dfebbe2620e50da9cbea0cbd56 (diff) | |
| download | ecgen-d4a152b9daf665db62e3e30ca40f3cf94a1a30af.tar.gz ecgen-d4a152b9daf665db62e3e30ca40f3cf94a1a30af.tar.zst ecgen-d4a152b9daf665db62e3e30ca40f3cf94a1a30af.zip | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile | 8 | ||||
| -rw-r--r-- | src/invalid/invalid.c | 1 | ||||
| -rw-r--r-- | src/math/curve.c | 8 |
3 files changed, 13 insertions, 4 deletions
diff --git a/src/Makefile b/src/Makefile index a149946..427d17f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -17,7 +17,7 @@ endif LDFLAGS = -L../lib/parson -L../lib/sha1 -L../lib/pari INCLUDES = -I. -I../lib -LIBS = -lrt -lpari -lparson +LIBS = -lrt -lpthread -lparson -lsha1 -lpari #### @@ -50,8 +50,8 @@ econvert: econvert.o $(ECONVERT_OBJ) #### clean-all: clean - rm ../ecgen - rm ../econvert + rm -f ../ecgen + rm -f ../econvert clean: find . -type f -name '*.o' -exec rm {} + @@ -60,4 +60,4 @@ format: clang-format -i $(SRC) clang-format -i $(HDR) -.PHONY: all gp2c clean-all clean clean-gp format +.PHONY: all clean-all clean format diff --git a/src/invalid/invalid.c b/src/invalid/invalid.c index 65c6c4b..f029337 100644 --- a/src/invalid/invalid.c +++ b/src/invalid/invalid.c @@ -185,6 +185,7 @@ static size_t invalid_curves(curve_t *curve, config_t *cfg, pari_ulong *primes, // primes from range divided order. Thus remove it // like it never existed. + obj_free(invalid->curve); //necessary to free the ellinit avma = btop; } } 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)) { |
