From a4c8e24f4c0b13c92c3fc5ff48db242e617342bf Mon Sep 17 00:00:00 2001 From: sebres Date: Mon, 8 Jul 2019 15:00:12 +0000 Subject: amend to [c14252171d]: fixes [4718b41c56] for x64 (and x86 with 64-bit predefined time_t resp. CRT library) --- generic/tclCmdAH.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/generic/tclCmdAH.c b/generic/tclCmdAH.c index 259b8cd..0a0f54e 100644 --- a/generic/tclCmdAH.c +++ b/generic/tclCmdAH.c @@ -875,10 +875,20 @@ Tcl_FileObjCmd( * 64-bit platforms. [Bug #698146] */ - long newTime; + time_t newTime; - if (TclGetLongFromObj(interp, objv[3], &newTime) != TCL_OK) { - return TCL_ERROR; + if ((time_t)WIDE_MAX < WIDE_MAX) { + long i; + if (TclGetLongFromObj(interp, objv[3], &i) != TCL_OK) { + return TCL_ERROR; + } + newTime = i; + } else { + Tcl_WideInt i; + if (Tcl_GetWideIntFromObj(interp, objv[3], &i) != TCL_OK) { + return TCL_ERROR; + } + newTime = i; } if (index == FCMD_ATIME) { -- cgit v0.12 From 4b7f867f902413fdca08b3f4e7d6beb2158a851f Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 8 Jul 2019 19:02:56 +0000 Subject: Simplify previous commit: Just always use Tcl_WideInt --- generic/tclCmdAH.c | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/generic/tclCmdAH.c b/generic/tclCmdAH.c index 0a0f54e..06743d6 100644 --- a/generic/tclCmdAH.c +++ b/generic/tclCmdAH.c @@ -870,25 +870,11 @@ Tcl_FileObjCmd( return TCL_ERROR; } if (objc == 4) { - /* - * Need separate variable for reading longs from an object on - * 64-bit platforms. [Bug #698146] - */ + Tcl_WideInt newTime; - time_t newTime; - - if ((time_t)WIDE_MAX < WIDE_MAX) { - long i; - if (TclGetLongFromObj(interp, objv[3], &i) != TCL_OK) { - return TCL_ERROR; - } - newTime = i; - } else { - Tcl_WideInt i; - if (Tcl_GetWideIntFromObj(interp, objv[3], &i) != TCL_OK) { - return TCL_ERROR; - } - newTime = i; + + if (Tcl_GetWideIntFromObj(interp, objv[3], &newTime) != TCL_OK) { + return TCL_ERROR; } if (index == FCMD_ATIME) { -- cgit v0.12