aboutsummaryrefslogtreecommitdiff
path: root/src/gen/order.c
diff options
context:
space:
mode:
authorJ08nY2017-12-17 19:30:46 +0100
committerJ08nY2017-12-17 19:30:46 +0100
commit43362aa1c57e3801f57c966c851a70d8e4edb3b4 (patch)
tree6b9060e7e221622ec28a105d7d2ca77c4e4f17bf /src/gen/order.c
parentf1ef4305ad2e2299f72e569fcb6e31d3b98249dd (diff)
downloadecgen-43362aa1c57e3801f57c966c851a70d8e4edb3b4.tar.gz
ecgen-43362aa1c57e3801f57c966c851a70d8e4edb3b4.tar.zst
ecgen-43362aa1c57e3801f57c966c851a70d8e4edb3b4.zip
Diffstat (limited to 'src/gen/order.c')
-rw-r--r--src/gen/order.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gen/order.c b/src/gen/order.c
index 366c2cd..1c9e280 100644
--- a/src/gen/order.c
+++ b/src/gen/order.c
@@ -20,10 +20,12 @@ GENERATOR(order_gen_input) {
}
GENERATOR(order_gen_any) {
+ pari_sp ltop = avma;
GEN ord = ellff_get_card(curve->curve);
if (isclone(ord)) {
- curve->order = gcopy(ord);
+ curve->order = gerepilecopy(ltop, ord);
} else {
+ avma = ltop;
curve->order = ord;
}
return 1;
@@ -36,7 +38,7 @@ GENERATOR(order_gen_sea) {
avma = ltop;
return -4;
} else {
- curve->order = order;
+ curve->order = gerepilecopy(ltop, order);
obj_insert_shallow(curve->curve, 1, order);
return 1;
}
@@ -86,7 +88,7 @@ GENERATOR(order_gen_prime) {
avma = ltop;
return -4;
} else {
- curve->order = order;
+ curve->order = gerepilecopy(ltop, order);
obj_insert_shallow(curve->curve, 1, curve->order);
return 1;
}