Skip to content

Commit 5001229

Browse files
Remove the unused points and scalars allocation from secp256k1_ecmult_strauss_batch.
1 parent 9076f5c commit 5001229

File tree

1 file changed

+3
-11
lines changed

1 file changed

+3
-11
lines changed

src/ecmult_impl.h

+3-11
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ static void secp256k1_ecmult(const secp256k1_ecmult_context *ctx, secp256k1_gej
611611
}
612612

613613
static size_t secp256k1_strauss_scratch_size(size_t n_points) {
614-
static const size_t point_size = (sizeof(secp256k1_ge) + sizeof(secp256k1_fe)) * ECMULT_TABLE_SIZE(WINDOW_A) + sizeof(struct secp256k1_strauss_point_state) + sizeof(secp256k1_gej) + sizeof(secp256k1_scalar);
614+
static const size_t point_size = (sizeof(secp256k1_ge) + sizeof(secp256k1_fe)) * ECMULT_TABLE_SIZE(WINDOW_A) + sizeof(struct secp256k1_strauss_point_state);
615615
return n_points*point_size;
616616
}
617617

@@ -633,8 +633,6 @@ static int secp256k1_ecmult_adaptor_cb(secp256k1_scalar *sc, secp256k1_gej *pt,
633633
}
634634

635635
static int secp256k1_ecmult_strauss_batch(const secp256k1_callback* error_callback, const secp256k1_ecmult_context *ctx, secp256k1_scratch *scratch, secp256k1_gej *r, const secp256k1_scalar *inp_g_sc, secp256k1_ecmult_multi_callback cb, void *cbdata, size_t n_points, size_t cb_offset) {
636-
secp256k1_gej* points;
637-
secp256k1_scalar* scalars;
638636
struct secp256k1_ecmult_adaptor_cb_data adaptor_data;
639637
struct secp256k1_strauss_state state;
640638
const size_t scratch_checkpoint = secp256k1_scratch_checkpoint(error_callback, scratch);
@@ -644,20 +642,14 @@ static int secp256k1_ecmult_strauss_batch(const secp256k1_callback* error_callba
644642
return 1;
645643
}
646644

647-
points = (secp256k1_gej*)secp256k1_scratch_alloc(error_callback, scratch, n_points * sizeof(secp256k1_gej));
648-
scalars = (secp256k1_scalar*)secp256k1_scratch_alloc(error_callback, scratch, n_points * sizeof(secp256k1_scalar));
649645
adaptor_data.cb = cb;
650646
adaptor_data.data = cbdata;
651647
state.aux = (secp256k1_fe*)secp256k1_scratch_alloc(error_callback, scratch, n_points * ECMULT_TABLE_SIZE(WINDOW_A) * sizeof(secp256k1_fe));
652648
state.pre_a = (secp256k1_ge*)secp256k1_scratch_alloc(error_callback, scratch, n_points * ECMULT_TABLE_SIZE(WINDOW_A) * sizeof(secp256k1_ge));
653649
state.ps = (struct secp256k1_strauss_point_state*)secp256k1_scratch_alloc(error_callback, scratch, n_points * sizeof(struct secp256k1_strauss_point_state));
654650

655-
if (points == NULL || scalars == NULL || state.aux == NULL || state.pre_a == NULL || state.ps == NULL) {
656-
secp256k1_scratch_apply_checkpoint(error_callback, scratch, scratch_checkpoint);
657-
return 0;
658-
}
659-
660-
if (!secp256k1_ecmult_strauss_wnaf(ctx, &state, r, n_points, &secp256k1_ecmult_adaptor_cb, &adaptor_data, cb_offset, inp_g_sc)) {
651+
if (state.aux == NULL || state.pre_a == NULL || state.ps == NULL ||
652+
!secp256k1_ecmult_strauss_wnaf(ctx, &state, r, n_points, &secp256k1_ecmult_adaptor_cb, &adaptor_data, cb_offset, inp_g_sc)) {
661653
secp256k1_scratch_apply_checkpoint(error_callback, scratch, scratch_checkpoint);
662654
return 0;
663655
}

0 commit comments

Comments
 (0)