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