diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-02-26 08:14:56 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-02-26 08:14:56 (GMT) |
| commit | 86d269ab0a23dc63dc3c00b2f54fc8180997e944 (patch) | |
| tree | 2615283ecf44a236b3eef387b87990ab5299e101 | |
| parent | 912dd9a9979c1abbc38bf25876c315799795b06a (diff) | |
| parent | 5c61b2bbdce7b9dbc4c067cf5646e8bd175a9d84 (diff) | |
| download | tcl-86d269ab0a23dc63dc3c00b2f54fc8180997e944.zip tcl-86d269ab0a23dc63dc3c00b2f54fc8180997e944.tar.gz tcl-86d269ab0a23dc63dc3c00b2f54fc8180997e944.tar.bz2 | |
Merge 8.7
| -rw-r--r-- | doc/lsearch.n | 2 | ||||
| -rw-r--r-- | generic/tclOODefineCmds.c | 3 | ||||
| -rw-r--r-- | library/dde/pkgIndex.tcl | 4 | ||||
| -rwxr-xr-x | library/reg/pkgIndex.tcl | 4 | ||||
| -rw-r--r-- | tests/internals.tcl | 4 | ||||
| -rw-r--r-- | tests/oo.test | 34 | ||||
| -rw-r--r-- | tests/registry.test | 4 | ||||
| -rw-r--r-- | tests/winDde.test | 4 | ||||
| -rw-r--r-- | win/Makefile.in | 4 | ||||
| -rw-r--r-- | win/makefile.vc | 4 | ||||
| -rw-r--r-- | win/tclWinDde.c | 2 | ||||
| -rw-r--r-- | win/tclWinReg.c | 6 |
12 files changed, 54 insertions, 21 deletions
diff --git a/doc/lsearch.n b/doc/lsearch.n index f38afc9..2586486 100644 --- a/doc/lsearch.n +++ b/doc/lsearch.n @@ -227,7 +227,7 @@ The same thing for a flattened list: \fI\(-> {a abc b bcd}\fR .CE .SH "SEE ALSO" -foreach(n), +foreach(n), list(n), lappend(n), lassign(n), lindex(n), linsert(n), llength(n), lmap(n), lpop(n), lrange(n), lremove(n), lrepeat(n), lreplace(n), lreverse(n), lset(n), lsort(n), diff --git a/generic/tclOODefineCmds.c b/generic/tclOODefineCmds.c index ba5299e..fb2fbb5 100644 --- a/generic/tclOODefineCmds.c +++ b/generic/tclOODefineCmds.c @@ -2598,7 +2598,6 @@ ClassSuperSet( superclasses[i] = GetClassInOuterContext(interp, superv[i], "only a class can be a superclass"); if (superclasses[i] == NULL) { - i--; goto failedAfterAlloc; } for (j = 0; j < i; j++) { @@ -2615,7 +2614,7 @@ ClassSuperSet( "attempt to form circular dependency graph", -1)); Tcl_SetErrorCode(interp, "TCL", "OO", "CIRCULARITY", NULL); failedAfterAlloc: - for (; i > 0; i--) { + for (; i-- > 0 ;) { TclOODecrRefCount(superclasses[i]->thisPtr); } Tcl_Free(superclasses); diff --git a/library/dde/pkgIndex.tcl b/library/dde/pkgIndex.tcl index 16f47f8..e8917ac 100644 --- a/library/dde/pkgIndex.tcl +++ b/library/dde/pkgIndex.tcl @@ -1,7 +1,7 @@ if {![package vsatisfies [package provide Tcl] 8.5-]} return if {[info sharedlibextension] != ".dll"} return if {[::tcl::pkgconfig get debug]} { - package ifneeded dde 1.4.2 [list load [file join $dir tcldde14g.dll] dde] + package ifneeded dde 1.4.3 [list load [file join $dir tcldde14g.dll] dde] } else { - package ifneeded dde 1.4.2 [list load [file join $dir tcldde14.dll] dde] + package ifneeded dde 1.4.3 [list load [file join $dir tcldde14.dll] dde] } diff --git a/library/reg/pkgIndex.tcl b/library/reg/pkgIndex.tcl index 8676208..b33970d 100755 --- a/library/reg/pkgIndex.tcl +++ b/library/reg/pkgIndex.tcl @@ -1,9 +1,9 @@ if {![package vsatisfies [package provide Tcl] 8.5-]} return if {[info sharedlibextension] != ".dll"} return if {[::tcl::pkgconfig get debug]} { - package ifneeded registry 1.3.4 \ + package ifneeded registry 1.3.5 \ [list load [file join $dir tclreg13g.dll] registry] } else { - package ifneeded registry 1.3.4 \ + package ifneeded registry 1.3.5 \ [list load [file join $dir tclreg13.dll] registry] } diff --git a/tests/internals.tcl b/tests/internals.tcl index 6b5bb87..e859afe 100644 --- a/tests/internals.tcl +++ b/tests/internals.tcl @@ -21,7 +21,7 @@ namespace path ::tcltest # Options: # -addmem - set additional memory limit (in bytes) as difference (extra memory needed to run a test) # -maxmem - set absolute maximum address space limit (in bytes) -# +# proc testWithLimit args { set body [lindex $args end] array set in [lrange $args 0 end-1] @@ -45,7 +45,7 @@ proc testWithLimit args { incr in(-addmem) 20000000 # + size of locale-archive (may be up to 100MB): incr in(-addmem) [expr { - [file exists /usr/lib/locale/locale-archive] ? + [file exists /usr/lib/locale/locale-archive] ? [file size /usr/lib/locale/locale-archive] : 0 }] } diff --git a/tests/oo.test b/tests/oo.test index 3b56f30..c73c36c 100644 --- a/tests/oo.test +++ b/tests/oo.test @@ -313,6 +313,40 @@ test oo-1.18.3 {Bug 21c144f0f5} -setup { } -cleanup { interp delete slave } +test oo-1.18.4 {correct handling of cleanup in superclass set error} -setup { + interp create slave +} -body { + slave eval { + oo::class create A + oo::class create B { + superclass oo::class + constructor {} { + next {superclass A} + next {superclass -append A} + } + } + [B create C] create d + } +} -returnCodes error -cleanup { + interp delete slave +} -result {class should only be a direct superclass once} +test oo-1.18.5 {correct handling of cleanup in superclass set error} -setup { + interp create slave +} -body { + slave eval { + oo::class create A + oo::class create B { + superclass oo::class + constructor {c} { + next {superclass A} + next [list superclass -append {*}$c] + } + } + [B create C {B C}] create d + } +} -returnCodes error -cleanup { + interp delete slave +} -result {attempt to form circular dependency graph} test oo-1.19 {basic test of OO functionality: teardown order} -body { oo::object create o namespace delete [info object namespace o] diff --git a/tests/registry.test b/tests/registry.test index 86f4ef3..8cfd5be 100644 --- a/tests/registry.test +++ b/tests/registry.test @@ -19,7 +19,7 @@ testConstraint reg 0 if {[testConstraint win]} { if {![catch { ::tcltest::loadTestedCommands - set ::regver [package require registry 1.3.4] + set ::regver [package require registry 1.3.5] }]} { testConstraint reg 1 } @@ -33,7 +33,7 @@ testConstraint english [expr { test registry-1.0 {check if we are testing the right dll} {win reg} { set ::regver -} {1.3.4} +} {1.3.5} test registry-1.1 {argument parsing for registry command} {win reg} { list [catch {registry} msg] $msg } {1 {wrong # args: should be "registry ?-32bit|-64bit? option ?arg ...?"}} diff --git a/tests/winDde.test b/tests/winDde.test index 412c476..acba304 100644 --- a/tests/winDde.test +++ b/tests/winDde.test @@ -20,7 +20,7 @@ testConstraint dde 0 if {[testConstraint win]} { if {![catch { ::tcltest::loadTestedCommands - set ::ddever [package require dde 1.4.2] + set ::ddever [package require dde 1.4.3] set ::ddelib [lindex [package ifneeded dde $::ddever] 1]}]} { testConstraint dde 1 } @@ -104,7 +104,7 @@ proc createChildProcess {ddeServerName args} { # ------------------------------------------------------------------------- test winDde-1.0 {check if we are testing the right dll} {win dde} { set ::ddever -} {1.4.2} +} {1.4.3} test winDde-1.1 {Settings the server's topic name} -constraints dde -body { list [dde servername foobar] [dde servername] [dde servername self] diff --git a/win/Makefile.in b/win/Makefile.in index 07a2040..fb68f98 100644 --- a/win/Makefile.in +++ b/win/Makefile.in @@ -153,8 +153,8 @@ TEST_DLL_FILE = tcltest$(VER)${DLLSUFFIX} TEST_EXE_FILE = tcltest${EXESUFFIX} TEST_LIB_FILE = @LIBPREFIX@tcltest$(VER)${LIBSUFFIX} TEST_LOAD_PRMS = lappend ::auto_path {$(ROOT_DIR_WIN_NATIVE)/tests};\ - package ifneeded dde 1.4.2 [list load [file normalize ${DDE_DLL_FILE}] dde];\ - package ifneeded registry 1.3.4 [list load [file normalize ${REG_DLL_FILE}] registry] + package ifneeded dde 1.4.3 [list load [file normalize ${DDE_DLL_FILE}] dde];\ + package ifneeded registry 1.3.5 [list load [file normalize ${REG_DLL_FILE}] registry] TEST_LOAD_FACILITIES = package ifneeded Tcltest ${VERSION}@TCL_PATCH_LEVEL@ [list load [file normalize ${TEST_DLL_FILE}] Tcltest];\ $(TEST_LOAD_PRMS) ZLIB_DLL_FILE = zlib1.dll diff --git a/win/makefile.vc b/win/makefile.vc index 11b8676..c328a2f 100644 --- a/win/makefile.vc +++ b/win/makefile.vc @@ -471,8 +471,8 @@ test: test-core test-pkgs test-core: setup $(TCLTEST) dlls
set TCL_LIBRARY=$(ROOT:\=/)/library
$(DEBUGGER) $(TCLTEST) "$(ROOT:\=/)/tests/all.tcl" $(TESTFLAGS) -loadfile <<
- package ifneeded dde 1.4.2 [list load "$(TCLDDELIB:\=/)" dde]
- package ifneeded registry 1.3.4 [list load "$(TCLREGLIB:\=/)" registry]
+ package ifneeded dde 1.4.3 [list load "$(TCLDDELIB:\=/)" dde]
+ package ifneeded registry 1.3.5 [list load "$(TCLREGLIB:\=/)" registry]
<<
runtest: setup $(TCLTEST) dlls
diff --git a/win/tclWinDde.c b/win/tclWinDde.c index 267ee6e..a4c00fa 100644 --- a/win/tclWinDde.c +++ b/win/tclWinDde.c @@ -79,7 +79,7 @@ static DWORD ddeInstance; /* The application instance handle given to us * by DdeInitialize. */ static int ddeIsServer = 0; -#define TCL_DDE_VERSION "1.4.2" +#define TCL_DDE_VERSION "1.4.3" #define TCL_DDE_PACKAGE_NAME "dde" #define TCL_DDE_SERVICE_NAME L"TclEval" #define TCL_DDE_EXECUTE_RESULT L"$TCLEVAL$EXECUTE$RESULT" diff --git a/win/tclWinReg.c b/win/tclWinReg.c index 2c1b8a5..7bbb10b 100644 --- a/win/tclWinReg.c +++ b/win/tclWinReg.c @@ -191,7 +191,7 @@ Registry_Init( cmd = Tcl_CreateObjCommand(interp, "registry", RegistryObjCmd, interp, DeleteCmd); Tcl_SetAssocData(interp, REGISTRY_ASSOC_KEY, NULL, cmd); - return Tcl_PkgProvideEx(interp, "registry", "1.3.4", NULL); + return Tcl_PkgProvideEx(interp, "registry", "1.3.5", NULL); } /* @@ -444,7 +444,7 @@ DeleteKey( */ keyName = Tcl_GetString(keyNameObj); - buffer = Tcl_Alloc(keyNameObj->length + 1); + buffer = (char *)Tcl_Alloc(keyNameObj->length + 1); strcpy(buffer, keyName); if (ParseKeyName(interp, buffer, &hostName, &rootKey, @@ -977,7 +977,7 @@ OpenKey( DWORD result; keyName = Tcl_GetString(keyNameObj); - buffer = Tcl_Alloc(keyNameObj->length + 1); + buffer = (char *)Tcl_Alloc(keyNameObj->length + 1); strcpy(buffer, keyName); result = ParseKeyName(interp, buffer, &hostName, &rootKey, &keyName); |
