From a1e06f4b0acd63c93d68837e05a0d3d1fa1f0281 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 23 Oct 2019 20:28:11 +0000 Subject: Combine two libtommath stub entries, which do exactly the same. Fix mp_init_set_int stub, handling the situation that mp_init() fails (however unlikely) --- generic/tclStubInit.c | 16 +++++++--------- generic/tclTomMath.decls | 3 --- generic/tclTomMathDecls.h | 13 ++++++------- 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index ce389bf..d1911d7 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -73,21 +73,19 @@ static int TclSockMinimumBuffersOld(int sock, int size) static MP_SET_UNSIGNED(bn_mp_set_ull, Tcl_WideUInt) -mp_err TclBN_mp_set_long(mp_int *a, unsigned long i) +mp_err TclBN_mp_set_int(mp_int *a, unsigned long i) { bn_mp_set_ull(a, i); return MP_OKAY; } -mp_err TclBN_mp_set_int(mp_int *a, unsigned long i) -{ - return TclBN_mp_set_long(a, i); -} - mp_err TclBN_mp_init_set_int(mp_int *a, unsigned long i) { - mp_init(a); - return TclBN_mp_set_long(a, i); + mp_err result = mp_init(a); + if (result == MP_OKAY) { + bn_mp_set_ull(a, i); + } + return result; } int TclBN_mp_expt_d_ex(const mp_int *a, mp_digit b, mp_int *c, int fast) @@ -922,7 +920,7 @@ const TclTomMathStubs tclTomMathStubs = { TclBN_mp_expt_d_ex, /* 67 */ 0, /* 68 */ 0, /* 69 */ - TclBN_mp_set_long, /* 70 */ + 0, /* 70 */ 0, /* 71 */ TclBN_mp_isodd, /* 72 */ TclBN_mp_tc_and, /* 73 */ diff --git a/generic/tclTomMath.decls b/generic/tclTomMath.decls index 01df31b..0d16fe3 100644 --- a/generic/tclTomMath.decls +++ b/generic/tclTomMath.decls @@ -237,9 +237,6 @@ declare 66 { declare 67 { mp_err TclBN_mp_expt_d_ex(const mp_int *a, mp_digit b, mp_int *c, int fast) } -declare 70 { - mp_err TclBN_mp_set_long(mp_int *a, unsigned long i) -} declare 72 { mp_bool TclBN_mp_isodd(const mp_int *a) } diff --git a/generic/tclTomMathDecls.h b/generic/tclTomMathDecls.h index a4c7e02..ceabc22 100644 --- a/generic/tclTomMathDecls.h +++ b/generic/tclTomMathDecls.h @@ -104,8 +104,9 @@ #define mp_read_radix TclBN_mp_read_radix #define mp_rshd TclBN_mp_rshd #define mp_set TclBN_mp_set -#define mp_set_int TclBN_mp_set_int -#define mp_set_long TclBN_mp_set_long +#define mp_set_int(a,b) (TclBN_mp_set_int(a,(unsigned int)(b)),MP_OKAY) +#define mp_set_long(a,b) (TclBN_mp_set_int(a,b),MP_OKAY) +#define mp_set_ul(a,b) (void)TclBN_mp_set_int(a,b) #define mp_shrink TclBN_mp_shrink #define mp_sqr TclBN_mp_sqr #define mp_sqrt TclBN_mp_sqrt @@ -329,8 +330,7 @@ EXTERN mp_err TclBN_mp_expt_d_ex(const mp_int *a, mp_digit b, mp_int *c, int fast); /* Slot 68 is reserved */ /* Slot 69 is reserved */ -/* 70 */ -EXTERN mp_err TclBN_mp_set_long(mp_int *a, unsigned long i); +/* Slot 70 is reserved */ /* Slot 71 is reserved */ /* 72 */ EXTERN mp_bool TclBN_mp_isodd(const mp_int *a); @@ -431,7 +431,7 @@ typedef struct TclTomMathStubs { mp_err (*tclBN_mp_expt_d_ex) (const mp_int *a, mp_digit b, mp_int *c, int fast); /* 67 */ void (*reserved68)(void); void (*reserved69)(void); - mp_err (*tclBN_mp_set_long) (mp_int *a, unsigned long i); /* 70 */ + void (*reserved70)(void); void (*reserved71)(void); mp_bool (*tclBN_mp_isodd) (const mp_int *a); /* 72 */ mp_err (*tclBN_mp_tc_and) (const mp_int *a, const mp_int *b, mp_int *c); /* 73 */ @@ -594,8 +594,7 @@ extern const TclTomMathStubs *tclTomMathStubsPtr; (tclTomMathStubsPtr->tclBN_mp_expt_d_ex) /* 67 */ /* Slot 68 is reserved */ /* Slot 69 is reserved */ -#define TclBN_mp_set_long \ - (tclTomMathStubsPtr->tclBN_mp_set_long) /* 70 */ +/* Slot 70 is reserved */ /* Slot 71 is reserved */ #define TclBN_mp_isodd \ (tclTomMathStubsPtr->tclBN_mp_isodd) /* 72 */ -- cgit v0.12 From 07f720d5670b72e9c3e86ad1ce4d1f2667a6b35f Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Thu, 24 Oct 2019 07:36:48 +0000 Subject: Add additional (dummy) stub entries in the libtommath stubtable --- generic/tclStubInit.c | 17 ++++++++++++++ generic/tclTomMath.decls | 8 +++++++ generic/tclTomMathDecls.h | 58 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 9b1562c..b78febc 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -742,6 +742,23 @@ TclTomMathStubs tclTomMathStubs = { TclBN_mp_init_set_int, /* 61 */ TclBN_mp_set_int, /* 62 */ TclBN_mp_cnt_lsb, /* 63 */ + NULL, /* 64 */ + NULL, /* 65 */ + NULL, /* 66 */ + NULL, /* 67 */ + NULL, /* 68 */ + NULL, /* 69 */ + NULL, /* 70 */ + NULL, /* 71 */ + NULL, /* 72 */ + NULL, /* 73 */ + NULL, /* 74 */ + NULL, /* 75 */ + NULL, /* 76 */ + NULL, /* 77 */ + NULL, /* 78 */ + NULL, /* 79 */ + TclUnusedStubEntry, /* 80 */ }; static TclStubHooks tclStubHooks = { diff --git a/generic/tclTomMath.decls b/generic/tclTomMath.decls index db37e41..dfb6956 100644 --- a/generic/tclTomMath.decls +++ b/generic/tclTomMath.decls @@ -220,3 +220,11 @@ declare 62 { declare 63 { int TclBN_mp_cnt_lsb(mp_int *a) } +declare 80 { + void TclUnusedStubEntry(void) +} + + +# Local Variables: +# mode: tcl +# End: diff --git a/generic/tclTomMathDecls.h b/generic/tclTomMathDecls.h index bd801a3..e4c1cec 100644 --- a/generic/tclTomMathDecls.h +++ b/generic/tclTomMathDecls.h @@ -474,6 +474,27 @@ EXTERN int TclBN_mp_set_int(mp_int *a, unsigned long i); /* 63 */ EXTERN int TclBN_mp_cnt_lsb(mp_int *a); #endif +/* Slot 64 is reserved */ +/* Slot 65 is reserved */ +/* Slot 66 is reserved */ +/* Slot 67 is reserved */ +/* Slot 68 is reserved */ +/* Slot 69 is reserved */ +/* Slot 70 is reserved */ +/* Slot 71 is reserved */ +/* Slot 72 is reserved */ +/* Slot 73 is reserved */ +/* Slot 74 is reserved */ +/* Slot 75 is reserved */ +/* Slot 76 is reserved */ +/* Slot 77 is reserved */ +/* Slot 78 is reserved */ +/* Slot 79 is reserved */ +#ifndef TclUnusedStubEntry_TCL_DECLARED +#define TclUnusedStubEntry_TCL_DECLARED +/* 80 */ +EXTERN void TclUnusedStubEntry(void); +#endif typedef struct TclTomMathStubs { int magic; @@ -543,6 +564,23 @@ typedef struct TclTomMathStubs { int (*tclBN_mp_init_set_int) (mp_int *a, unsigned long i); /* 61 */ int (*tclBN_mp_set_int) (mp_int *a, unsigned long i); /* 62 */ int (*tclBN_mp_cnt_lsb) (mp_int *a); /* 63 */ + VOID *reserved64; + VOID *reserved65; + VOID *reserved66; + VOID *reserved67; + VOID *reserved68; + VOID *reserved69; + VOID *reserved70; + VOID *reserved71; + VOID *reserved72; + VOID *reserved73; + VOID *reserved74; + VOID *reserved75; + VOID *reserved76; + VOID *reserved77; + VOID *reserved78; + VOID *reserved79; + void (*tclUnusedStubEntry) (void); /* 80 */ } TclTomMathStubs; extern TclTomMathStubs *tclTomMathStubsPtr; @@ -813,6 +851,26 @@ extern TclTomMathStubs *tclTomMathStubsPtr; #define TclBN_mp_cnt_lsb \ (tclTomMathStubsPtr->tclBN_mp_cnt_lsb) /* 63 */ #endif +/* Slot 64 is reserved */ +/* Slot 65 is reserved */ +/* Slot 66 is reserved */ +/* Slot 67 is reserved */ +/* Slot 68 is reserved */ +/* Slot 69 is reserved */ +/* Slot 70 is reserved */ +/* Slot 71 is reserved */ +/* Slot 72 is reserved */ +/* Slot 73 is reserved */ +/* Slot 74 is reserved */ +/* Slot 75 is reserved */ +/* Slot 76 is reserved */ +/* Slot 77 is reserved */ +/* Slot 78 is reserved */ +/* Slot 79 is reserved */ +#ifndef TclUnusedStubEntry +#define TclUnusedStubEntry \ + (tclTomMathStubsPtr->tclUnusedStubEntry) /* 80 */ +#endif #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ -- cgit v0.12