@@ -62,6 +62,12 @@ Copyright (C) 1994 Steen Lumholt.
62
62
63
63
#include <tclTomMath.h>
64
64
65
+ #if defined(TCL_WITH_EXTERNAL_TOMMATH ) || (TCL_MAJOR_VERSION >= 9 )
66
+ #define USE_DEPRECATED_TOMMATH_API 0
67
+ #else
68
+ #define USE_DEPRECATED_TOMMATH_API 1
69
+ #endif
70
+
65
71
#if !(defined(MS_WINDOWS ) || defined(__CYGWIN__ ))
66
72
#define HAVE_CREATEFILEHANDLER
67
73
#endif
@@ -1050,20 +1056,33 @@ static PyObject*
1050
1056
fromBignumObj (TkappObject * tkapp , Tcl_Obj * value )
1051
1057
{
1052
1058
mp_int bigValue ;
1059
+ mp_err err ;
1060
+ #if USE_DEPRECATED_TOMMATH_API
1053
1061
unsigned long numBytes ;
1062
+ #else
1063
+ size_t numBytes ;
1064
+ #endif
1054
1065
unsigned char * bytes ;
1055
1066
PyObject * res ;
1056
1067
1057
1068
if (Tcl_GetBignumFromObj (Tkapp_Interp (tkapp ), value , & bigValue ) != TCL_OK )
1058
1069
return Tkinter_Error (tkapp );
1070
+ #if USE_DEPRECATED_TOMMATH_API
1059
1071
numBytes = mp_unsigned_bin_size (& bigValue );
1072
+ #else
1073
+ numBytes = mp_ubin_size (& bigValue );
1074
+ #endif
1060
1075
bytes = PyMem_Malloc (numBytes );
1061
1076
if (bytes == NULL ) {
1062
1077
mp_clear (& bigValue );
1063
1078
return PyErr_NoMemory ();
1064
1079
}
1065
- if (mp_to_unsigned_bin_n (& bigValue , bytes ,
1066
- & numBytes ) != MP_OKAY ) {
1080
+ #if USE_DEPRECATED_TOMMATH_API
1081
+ err = mp_to_unsigned_bin_n (& bigValue , bytes , & numBytes );
1082
+ #else
1083
+ err = mp_to_ubin (& bigValue , bytes , numBytes , NULL );
1084
+ #endif
1085
+ if (err != MP_OKAY ) {
1067
1086
mp_clear (& bigValue );
1068
1087
PyMem_Free (bytes );
1069
1088
return PyErr_NoMemory ();
0 commit comments