summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2018-10-21 20:38:02 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2018-10-21 20:38:02 (GMT)
commitd2c82fc45af53738344500a542ebe0333d5c89ac (patch)
treeb8f25cf083057f733c08529130bd925bef4513f5
parent7c2e55d3fd36b023222fe729d58855327f13c589 (diff)
downloadtcl-d2c82fc45af53738344500a542ebe0333d5c89ac.zip
tcl-d2c82fc45af53738344500a542ebe0333d5c89ac.tar.gz
tcl-d2c82fc45af53738344500a542ebe0333d5c89ac.tar.bz2
Change PTR2INT and PTR2UINT macros's so they can handle long's and Tcl_WideInt's too, so no longer restricted to the "int" range.
-rw-r--r--generic/tclDisassemble.c2
-rw-r--r--generic/tclInt.h8
-rw-r--r--generic/tclScan.c3
-rw-r--r--generic/tclTest.c4
4 files changed, 8 insertions, 9 deletions
diff --git a/generic/tclDisassemble.c b/generic/tclDisassemble.c
index a0d1258..6580d59 100644
--- a/generic/tclDisassemble.c
+++ b/generic/tclDisassemble.c
@@ -1610,7 +1610,7 @@ Tcl_DisassembleObjCmd(
"BYTECODE", NULL);
return TCL_ERROR;
}
- if (PTR2INT(clientData)) {
+ if (clientData) {
Tcl_SetObjResult(interp,
DisassembleByteCodeAsDicts(interp, codeObjPtr));
} else {
diff --git a/generic/tclInt.h b/generic/tclInt.h
index 1823c70..abf6c83 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -120,19 +120,19 @@ typedef int ptrdiff_t;
#if !defined(INT2PTR) && !defined(PTR2INT)
# if defined(HAVE_INTPTR_T) || defined(intptr_t)
# define INT2PTR(p) ((void *)(intptr_t)(p))
-# define PTR2INT(p) ((int)(intptr_t)(p))
+# define PTR2INT(p) ((intptr_t)(p))
# else
# define INT2PTR(p) ((void *)(p))
-# define PTR2INT(p) ((int)(p))
+# define PTR2INT(p) ((long)(p))
# endif
#endif
#if !defined(UINT2PTR) && !defined(PTR2UINT)
# if defined(HAVE_UINTPTR_T) || defined(uintptr_t)
# define UINT2PTR(p) ((void *)(uintptr_t)(p))
-# define PTR2UINT(p) ((unsigned int)(uintptr_t)(p))
+# define PTR2UINT(p) ((uintptr_t)(p))
# else
# define UINT2PTR(p) ((void *)(p))
-# define PTR2UINT(p) ((unsigned int)(p))
+# define PTR2UINT(p) ((unsigned long)(p))
# endif
#endif
diff --git a/generic/tclScan.c b/generic/tclScan.c
index 733409e..6a1311f 100644
--- a/generic/tclScan.c
+++ b/generic/tclScan.c
@@ -932,8 +932,7 @@ Tcl_ScanObjCmd(
}
}
if ((flags & SCAN_UNSIGNED) && (wideValue < 0)) {
- sprintf(buf, "%" TCL_LL_MODIFIER "u",
- (Tcl_WideUInt)wideValue);
+ sprintf(buf, "%" TCL_LL_MODIFIER "u", wideValue);
Tcl_SetStringObj(objPtr, buf, -1);
} else {
TclSetIntObj(objPtr, wideValue);
diff --git a/generic/tclTest.c b/generic/tclTest.c
index 18bfc1b..2cdd356 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -2394,7 +2394,7 @@ ExitProcOdd(
char buf[16 + TCL_INTEGER_SPACE];
size_t len;
- sprintf(buf, "odd %d\n", PTR2INT(clientData));
+ sprintf(buf, "odd %" TCL_Z_MODIFIER "d\n", (size_t)PTR2INT(clientData));
len = strlen(buf);
if (len != (size_t) write(1, buf, len)) {
Tcl_Panic("ExitProcOdd: unable to write to stdout");
@@ -2408,7 +2408,7 @@ ExitProcEven(
char buf[16 + TCL_INTEGER_SPACE];
size_t len;
- sprintf(buf, "even %d\n", PTR2INT(clientData));
+ sprintf(buf, "even %" TCL_Z_MODIFIER "d\n", (size_t)PTR2INT(clientData));
len = strlen(buf);
if (len != (size_t) write(1, buf, len)) {
Tcl_Panic("ExitProcEven: unable to write to stdout");