diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-09-28 14:02:17 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-09-28 14:02:17 (GMT) |
| commit | 03a9eede3b52a1056baffec1925ba4a5f1363441 (patch) | |
| tree | f2e96f2a7535031295d8cf0b8b049fe7f9c6a2ab | |
| parent | 487067a6d17bc8a87213c22d6c20ffd95d27b208 (diff) | |
| parent | 42bd6877bcc8794524e5be946458a4427994b7a6 (diff) | |
| download | tcl-03a9eede3b52a1056baffec1925ba4a5f1363441.zip tcl-03a9eede3b52a1056baffec1925ba4a5f1363441.tar.gz tcl-03a9eede3b52a1056baffec1925ba4a5f1363441.tar.bz2 | |
Merge 8.7
| -rwxr-xr-x | generic/tclArithSeries.c | 18 | ||||
| -rw-r--r-- | generic/tclCmdIL.c | 7 |
2 files changed, 10 insertions, 15 deletions
diff --git a/generic/tclArithSeries.c b/generic/tclArithSeries.c index 1346514..2f60d54 100755 --- a/generic/tclArithSeries.c +++ b/generic/tclArithSeries.c @@ -229,26 +229,24 @@ TclNewArithSeriesDbl(double start, double end, double step, Tcl_WideInt len) static void assignNumber(int useDoubles, Tcl_WideInt *intNumberPtr, double *dblNumberPtr, Tcl_Obj *numberObj) { - union { - double d; - Tcl_WideInt i; - } *number; + void *clientData; int tcl_number_type; - if (Tcl_GetNumberFromObj(NULL, numberObj, (void **)&number, &tcl_number_type) != TCL_OK) { + if (Tcl_GetNumberFromObj(NULL, numberObj, &clientData, &tcl_number_type) != TCL_OK + || tcl_number_type == TCL_NUMBER_BIG) { return; } if (useDoubles) { - if (tcl_number_type == TCL_NUMBER_DOUBLE) { - *dblNumberPtr = number->d; + if (tcl_number_type != TCL_NUMBER_INT) { + *dblNumberPtr = *(double *)clientData; } else { - *dblNumberPtr = (double)number->i; + *dblNumberPtr = (double)*(Tcl_WideInt *)clientData; } } else { if (tcl_number_type == TCL_NUMBER_INT) { - *intNumberPtr = number->i; + *intNumberPtr = *(Tcl_WideInt *)clientData; } else { - *intNumberPtr = (Tcl_WideInt)number->d; + *intNumberPtr = (Tcl_WideInt)*(double *)clientData; } } } diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index 46f0e89..4b7bd48 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -4077,12 +4077,9 @@ SequenceIdentifyArgument( int status; SequenceOperators opmode; SequenceByMode bymode; - union { - Tcl_WideInt i; - double d; - } nvalue; + void *clientData; - status = Tcl_GetNumberFromObj(NULL, argPtr, (ClientData*)&nvalue, keywordIndexPtr); + status = Tcl_GetNumberFromObj(NULL, argPtr, &clientData, keywordIndexPtr); if (status == TCL_OK) { if (numValuePtr) { *numValuePtr = argPtr; |
