diff options
| author | sebres <sebres@users.sourceforge.net> | 2024-12-28 13:58:53 (GMT) |
|---|---|---|
| committer | sebres <sebres@users.sourceforge.net> | 2024-12-28 13:58:53 (GMT) |
| commit | c96fff9fc1d126e5cc439f2f5ea79f3714f46f07 (patch) | |
| tree | 493c6fd1b352ed100a6ed027139a886efc70b8a3 /generic/tclBasic.c | |
| parent | 4b9c302d6f04524216edd9d5d7773067fc2ef774 (diff) | |
| download | tcl-c96fff9fc1d126e5cc439f2f5ea79f3714f46f07.zip tcl-c96fff9fc1d126e5cc439f2f5ea79f3714f46f07.tar.gz tcl-c96fff9fc1d126e5cc439f2f5ea79f3714f46f07.tar.bz2 | |
amend to [98006f00ac471be5]: fixes MSVC build (values of FP_* are compiler/implementation specific, e. g. for MSVC FP_NORMAL is equal -1)
Diffstat (limited to 'generic/tclBasic.c')
| -rw-r--r-- | generic/tclBasic.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index c06aac8..a3fe901 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -8719,32 +8719,34 @@ ClassifyDouble( #endif /* !fpclassify */ } -#define FP_CLS_ERROR -1 static inline int DoubleObjClass( Tcl_Interp *interp, - Tcl_Obj *objPtr) /* Object with double to get its class. */ + Tcl_Obj *objPtr, /* Object with double to get its class. */ + int *fpClsPtr) /* FP class retrieved for double in object. */ { double d; void *ptr; int type; if (Tcl_GetNumberFromObj(interp, objPtr, &ptr, &type) != TCL_OK) { - return FP_CLS_ERROR; + return TCL_ERROR; } switch (type) { case TCL_NUMBER_NAN: - return FP_NAN; + *fpClsPtr = FP_NAN; + return TCL_OK; case TCL_NUMBER_DOUBLE: d = *((const double *) ptr); break; default: if (Tcl_GetDoubleFromObj(interp, objPtr, &d) != TCL_OK) { - return FP_CLS_ERROR; + return TCL_ERROR; } break; } - return ClassifyDouble(d); + *fpClsPtr = ClassifyDouble(d); + return TCL_OK; } static inline int DoubleObjIsClass( @@ -8761,8 +8763,7 @@ DoubleObjIsClass( return TCL_ERROR; } - dCls = DoubleObjClass(interp, objv[1]); - if (dCls == FP_CLS_ERROR) { + if (DoubleObjClass(interp, objv[1], &dCls) != TCL_OK) { return TCL_ERROR; } dCls = ( @@ -8844,9 +8845,10 @@ ExprIsUnorderedFunc( return TCL_ERROR; } - dCls = DoubleObjClass(interp, objv[1]); - dCls2 = DoubleObjClass(interp, objv[2]); - if (dCls == FP_CLS_ERROR || dCls2 == FP_CLS_ERROR) { + if ( + DoubleObjClass(interp, objv[1], &dCls) != TCL_OK || + DoubleObjClass(interp, objv[2], &dCls2) != TCL_OK + ) { return TCL_ERROR; } |
