summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2017-03-31 11:21:19 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2017-03-31 11:21:19 (GMT)
commit9dfcf281835aca41e31d7662f78d7ba0c9c4b1e6 (patch)
tree2e39ff53063663e9c35e7b2d0ea25230c282ac21
parent79477818f1ba44e53f61237e60cf26febbd70033 (diff)
parent860cdf23779fd870926c414d99004cd80bcd3fa1 (diff)
downloadtcl-9dfcf281835aca41e31d7662f78d7ba0c9c4b1e6.zip
tcl-9dfcf281835aca41e31d7662f78d7ba0c9c4b1e6.tar.gz
tcl-9dfcf281835aca41e31d7662f78d7ba0c9c4b1e6.tar.bz2
merge core-8-6-branch
-rw-r--r--doc/IntObj.32
-rw-r--r--generic/tcl.h4
-rw-r--r--generic/tclIO.c2
-rw-r--r--generic/tclOOCall.c1
-rw-r--r--generic/tclStrToD.c4
-rw-r--r--generic/tclThreadTest.c2
-rw-r--r--tests/oo.test37
7 files changed, 45 insertions, 7 deletions
diff --git a/doc/IntObj.3 b/doc/IntObj.3
index dc62642..2acb446 100644
--- a/doc/IntObj.3
+++ b/doc/IntObj.3
@@ -97,7 +97,7 @@ are provided by the C language standard. The \fBTcl_WideInt\fR type is a
typedef defined to be whatever signed integral type covers at least the
64-bit integer range (-9223372036854775808 to 9223372036854775807). Depending
on the platform and the C compiler, the actual type might be
-\fBlong int\fR, \fBlong long int\fR, \fBint64\fR, or something else.
+\fBlong int\fR, \fBlong long int\fR, \fB__int64\fR, or something else.
The \fBmp_int\fR type is a multiple-precision integer type defined
by the LibTomMath multiple-precision integer library.
.PP
diff --git a/generic/tcl.h b/generic/tcl.h
index 64c7d14..759f824 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -372,8 +372,8 @@ typedef long LONG;
* we have one, we can have the other.)
*
* Also defines the following macros:
- * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on a real
- * 64-bit system.)
+ * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on a
+ * LP64 system such as modern Solaris or Linux ... not including Win64)
* Tcl_WideAsLong - forgetful converter from wideInt to long.
* Tcl_LongAsWide - sign-extending converter from long to wideInt.
* Tcl_WideAsDouble - converter from wideInt to double.
diff --git a/generic/tclIO.c b/generic/tclIO.c
index ffd2430..64501fd 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -9317,7 +9317,7 @@ MBWrite(
* then the calculations involving extra must be made wide too.
*
* Noted with Win32/MSVC debug build treating the warning (possible of
- * data in int64 to int conversion) as error.
+ * data in __int64 to int conversion) as error.
*/
bufPtr = AllocChannelBuffer(extra);
diff --git a/generic/tclOOCall.c b/generic/tclOOCall.c
index 8003345..ac0b94d 100644
--- a/generic/tclOOCall.c
+++ b/generic/tclOOCall.c
@@ -619,6 +619,7 @@ AddClassMethodNames(
int isWanted = (!(flags & PUBLIC_METHOD)
|| (mPtr->flags & PUBLIC_METHOD)) ? IN_LIST : 0;
+ isWanted |= (mPtr->typePtr == NULL ? NO_IMPLEMENTATION : 0);
Tcl_SetHashValue(hPtr, INT2PTR(isWanted));
} else if ((PTR2INT(Tcl_GetHashValue(hPtr)) & NO_IMPLEMENTATION)
&& mPtr->typePtr != NULL) {
diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c
index 6da6df3..67b6482 100644
--- a/generic/tclStrToD.c
+++ b/generic/tclStrToD.c
@@ -3798,7 +3798,7 @@ ShorteningBignumConversion(
--s5;
/*
- * IDEA: It might possibly be a win to fall back to int64
+ * IDEA: It might possibly be a win to fall back to int64_t
* arithmetic here if S < 2**64/10. But it's a win only for
* a fairly narrow range of magnitudes so perhaps not worth
* bothering. We already know that we shorten the
@@ -3963,7 +3963,7 @@ StrictBignumConversion(
* As with the shortening bignum conversion, it's possible at this
* point that we will have reduced the denominator to less than
* 2**64/10, at which point it would be possible to fall back to
- * to int64 arithmetic. But the potential payoff is tremendously
+ * to int64_t arithmetic. But the potential payoff is tremendously
* less - unless we're working in F format - because we know that
* three groups of digits will always suffice for %#.17e, the
* longest format that doesn't introduce empty precision.
diff --git a/generic/tclThreadTest.c b/generic/tclThreadTest.c
index 9c66313..fcf3880 100644
--- a/generic/tclThreadTest.c
+++ b/generic/tclThreadTest.c
@@ -341,7 +341,7 @@ ThreadObjCmd(
} else if (objc == 3
&& strcmp("-main", Tcl_GetString(objv[2])) == 0) {
Tcl_MutexLock(&threadMutex);
- idObj = Tcl_NewLongObj((long)(size_t)mainThreadId);
+ idObj = Tcl_NewWideIntObj((Tcl_WideInt)(size_t)mainThreadId);
Tcl_MutexUnlock(&threadMutex);
} else {
Tcl_WrongNumArgs(interp, 2, objv, NULL);
diff --git a/tests/oo.test b/tests/oo.test
index 2601c37..cb37a76 100644
--- a/tests/oo.test
+++ b/tests/oo.test
@@ -2241,6 +2241,43 @@ test oo-17.10 {OO: class introspection} -setup {
oo::define foo unexport {*}[info class methods foo -all]
info class methods foo -all
} -result {}
+set stdmethods {<cloned> destroy eval unknown variable varname}
+test oo-17.11 {OO: object method unexport (bug 900cb0284bc)} -setup {
+ oo::object create o
+ oo::objdefine o unexport m
+} -body {
+ lsort [info object methods o -all -private]
+} -cleanup {
+ o destroy
+} -result $stdmethods
+test oo-17.12 {OO: instance method unexport (bug 900cb0284bc)} -setup {
+ oo::class create c
+ c create o
+ oo::objdefine o unexport m
+} -body {
+ lsort [info object methods o -all -private]
+} -cleanup {
+ o destroy
+ c destroy
+} -result $stdmethods
+test oo-17.13 {OO: class method unexport (bug 900cb0284bc)} -setup {
+ oo::class create c
+ oo::define c unexport m
+} -body {
+ lsort [info class methods c -all -private]
+} -cleanup {
+ c destroy
+} -result $stdmethods
+test oo-17.14 {OO: instance method unexport (bug 900cb0284bc)} -setup {
+ oo::class create c
+ oo::define c unexport m
+ c create o
+} -body {
+ lsort [info object methods o -all -private]
+} -cleanup {
+ o destroy
+ c destroy
+} -result $stdmethods
test oo-18.1 {OO: define command support} {
list [catch {oo::define oo::object {error foo}} msg] $msg $errorInfo