summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2018-02-22 20:09:33 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2018-02-22 20:09:33 (GMT)
commitf5bf130f05e3dcf636ef831f017d5672c594660a (patch)
tree7c04995cab36d1d34a587fabe207fa5018b31ccd
parent701d9dbe89519d8d52b18d0e20140395e8a13682 (diff)
parent812174d5782d57e4dbe97e9a1e378a2a2a4eac1f (diff)
downloadtcl-f5bf130f05e3dcf636ef831f017d5672c594660a.zip
tcl-f5bf130f05e3dcf636ef831f017d5672c594660a.tar.gz
tcl-f5bf130f05e3dcf636ef831f017d5672c594660a.tar.bz2
merge core-8-branch
-rw-r--r--generic/tclGet.c2
-rw-r--r--generic/tclObj.c5
-rw-r--r--generic/tclTest.c6
-rw-r--r--generic/tclThreadTest.c4
4 files changed, 8 insertions, 9 deletions
diff --git a/generic/tclGet.c b/generic/tclGet.c
index 2d611fa..4811c42 100644
--- a/generic/tclGet.c
+++ b/generic/tclGet.c
@@ -142,7 +142,7 @@ Tcl_GetBoolean(
Tcl_Panic("invalid sharing of Tcl_Obj on C stack");
}
if (code == TCL_OK) {
- *boolPtr = (int)obj.internalRep.wideValue;
+ *boolPtr = obj.internalRep.wideValue != 0;
}
return code;
}
diff --git a/generic/tclObj.c b/generic/tclObj.c
index 647a777..3826bc0 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -1765,7 +1765,7 @@ Tcl_GetBooleanFromObj(
*
* Side effects:
* If no error occurs, an integer 1 or 0 is stored as "objPtr"s internal
- * representation and the type of "objPtr" is set to boolean.
+ * representation and the type of "objPtr" is set to boolean or int.
*
*----------------------------------------------------------------------
*/
@@ -1783,8 +1783,7 @@ TclSetBooleanFromAny(
if (objPtr->bytes == NULL) {
if (objPtr->typePtr == &tclIntType) {
- switch (objPtr->internalRep.wideValue) {
- case 0L: case 1L:
+ if ((Tcl_WideUInt)objPtr->internalRep.wideValue < 2) {
return TCL_OK;
}
goto badBoolean;
diff --git a/generic/tclTest.c b/generic/tclTest.c
index fa1d9f4..2efffcf 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -5203,7 +5203,7 @@ TestmainthreadCmd(
const char **argv) /* Argument strings. */
{
if (argc == 1) {
- Tcl_Obj *idObj = Tcl_NewLongObj((long)(size_t)Tcl_GetCurrentThread());
+ Tcl_Obj *idObj = Tcl_NewWideIntObj((Tcl_WideInt)(size_t)Tcl_GetCurrentThread());
Tcl_SetObjResult(interp, idObj);
return TCL_OK;
@@ -5600,8 +5600,8 @@ TestChannelCmd(
return TCL_ERROR;
}
- TclFormatInt(buf, (size_t) Tcl_GetChannelThread(chan));
- Tcl_AppendResult(interp, buf, NULL);
+ Tcl_SetObjResult(interp, Tcl_NewWideIntObj(
+ (Tcl_WideInt) (size_t) Tcl_GetChannelThread(chan)));
return TCL_OK;
}
diff --git a/generic/tclThreadTest.c b/generic/tclThreadTest.c
index 9c5fecb..a008799 100644
--- a/generic/tclThreadTest.c
+++ b/generic/tclThreadTest.c
@@ -248,7 +248,7 @@ ThreadObjCmd(
switch ((enum options)option) {
case THREAD_CANCEL: {
- long id;
+ Tcl_WideInt id;
const char *result;
int flags, arg;
@@ -264,7 +264,7 @@ ThreadObjCmd(
arg++;
}
}
- if (Tcl_GetLongFromObj(interp, objv[arg], &id) != TCL_OK) {
+ if (Tcl_GetWideIntFromObj(interp, objv[arg], &id) != TCL_OK) {
return TCL_ERROR;
}
arg++;