Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | add tcl upstream changes |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
45517af94f59c0d74be4d82e283dff4f |
User & Date: | chw 2019-06-21 05:04:23.269 |
Context
2019-06-21
| ||
09:28 | improve twv examples check-in: eba164d3ac user: chw tags: trunk | |
05:04 | add tcl upstream changes check-in: 45517af94f user: chw tags: trunk | |
05:00 | add selected tk upstream changes check-in: b18936dce6 user: chw tags: trunk | |
Changes
Changes to jni/tcl/generic/tclEnsemble.c.
︙ | ︙ | |||
2690 2691 2692 2693 2694 2695 2696 | * substituted part of the command (as a list) as their * content! */ if (isNew) { Tcl_Obj *cmdObj, *cmdPrefixObj; | > > > > | | 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 | * substituted part of the command (as a list) as their * content! */ if (isNew) { Tcl_Obj *cmdObj, *cmdPrefixObj; TclNewObj(cmdObj); Tcl_AppendStringsToObj(cmdObj, ensemblePtr->nsPtr->fullName, (ensemblePtr->nsPtr->parentPtr ? "::" : ""), nsCmdName, NULL); cmdPrefixObj = Tcl_NewListObj(1, &cmdObj); Tcl_SetHashValue(hPtr, cmdPrefixObj); Tcl_IncrRefCount(cmdPrefixObj); } break; } } |
︙ | ︙ |
Changes to jni/tcl/generic/tclExecute.c.
︙ | ︙ | |||
3712 3713 3714 3715 3716 3717 3718 3719 3720 | } if (arrayPtr && TclIsVarInHash(arrayPtr)) { VarHashRefCount(arrayPtr)--; } { int createdNewObj = 0; if (!objResultPtr) { | > | | > > | | > > > > | > < < < | 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 | } if (arrayPtr && TclIsVarInHash(arrayPtr)) { VarHashRefCount(arrayPtr)--; } { int createdNewObj = 0; Tcl_Obj *valueToAssign; if (!objResultPtr) { valueToAssign = valuePtr; } else if (TclListObjLength(interp, objResultPtr, &len)!=TCL_OK) { TRACE_ERROR(interp); goto gotError; } else { if (Tcl_IsShared(objResultPtr)) { valueToAssign = Tcl_DuplicateObj(objResultPtr); createdNewObj = 1; } else { valueToAssign = objResultPtr; } if (Tcl_ListObjReplace(interp, valueToAssign, len, 0, objc, objv) != TCL_OK) { if (createdNewObj) { TclDecrRefCount(valueToAssign); } goto errorInLappendListPtr; } } DECACHE_STACK_INFO(); Tcl_IncrRefCount(valueToAssign); objResultPtr = TclPtrSetVarIdx(interp, varPtr, arrayPtr, part1Ptr, part2Ptr, valueToAssign, TCL_LEAVE_ERR_MSG, opnd); TclDecrRefCount(valueToAssign); CACHE_STACK_INFO(); if (!objResultPtr) { errorInLappendListPtr: TRACE_ERROR(interp); goto gotError; } } TRACE_APPEND(("%.30s\n", O2S(objResultPtr))); NEXT_INST_V(pcAdjustment, cleanup, 1); } |
︙ | ︙ |
jni/tcl/library/msgs/ja.msg became a regular file.
︙ | ︙ |
Changes to jni/tcl/tests/execute.test.
︙ | ︙ | |||
1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 | trace add execution crash enterstep {apply {args {info frame -2}}} } -body { string is double [crash] } -cleanup { trace remove execution crash enterstep {apply {args {info frame -2}}} rename crash {} } -result 1 # cleanup if {[info commands testobj] != {}} { testobj freeallvars } catch {namespace delete {*}[namespace children :: test_ns_*]} catch {rename foo ""} | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 | trace add execution crash enterstep {apply {args {info frame -2}}} } -body { string is double [crash] } -cleanup { trace remove execution crash enterstep {apply {args {info frame -2}}} rename crash {} } -result 1 test execute-12.1 {failing multi-lappend to unshared} -setup { unset -nocomplain x y } -body { set x 1 lappend x 2 3 trace add variable x write {apply {args {error boo}}} lappend x 4 5 } -cleanup { unset -nocomplain x y } -returnCodes error -result {can't set "x": boo} test execute-12.2 {failing multi-lappend to shared} -setup { unset -nocomplain x y } -body { set x 1 lappend x 2 3 set y $x trace add variable x write {apply {args {error boo}}} lappend x 4 5 } -cleanup { unset -nocomplain x y } -returnCodes error -result {can't set "x": boo} test execute-12.3 {failing multi-lappend to unshared: LVT} -body { apply {{} { set x 1 lappend x 2 3 trace add variable x write {apply {args {error boo}}} lappend x 4 5 }} } -returnCodes error -result {can't set "x": boo} test execute-12.4 {failing multi-lappend to shared: LVT} -body { apply {{} { set x 1 lappend x 2 3 set y $x trace add variable x write {apply {args {error boo}}} lappend x 4 5 }} } -returnCodes error -result {can't set "x": boo} # cleanup if {[info commands testobj] != {}} { testobj freeallvars } catch {namespace delete {*}[namespace children :: test_ns_*]} catch {rename foo ""} |
︙ | ︙ |
Changes to jni/tcl/tests/namespace.test.
︙ | ︙ | |||
1793 1794 1795 1796 1797 1798 1799 | proc x2 {} {format 2} proc x3 {} {format 3} namespace ensemble create } list [ns x0 z] [ns x1] [ns x2] [ns x3] } -cleanup { namespace delete ns | | | 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 | proc x2 {} {format 2} proc x3 {} {format 3} namespace ensemble create } list [ns x0 z] [ns x1] [ns x2] [ns x3] } -cleanup { namespace delete ns } -result {{1 ::ns::x0::z} 1 2 3} test namespace-42.8 { ensembles: [Bug 1670091], panic due to pointer to a deallocated List struct. } -setup { proc demo args {} variable target [list [namespace which demo] x] proc trial args {variable target; string length $target} |
︙ | ︙ | |||
2124 2125 2126 2127 2128 2129 2130 | set result {} lappend result [catch {ns a b c} msg] $msg lappend result [catch {ns a b c} msg] $msg lappend result [catch {ns b c d} msg] $msg lappend result [catch {ns c d e} msg] $msg lappend result [catch {ns Magic foo bar spong wibble} msg] $msg list $result [lsort [info commands ::ns::*]] $log [namespace delete ns] | | | 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 | set result {} lappend result [catch {ns a b c} msg] $msg lappend result [catch {ns a b c} msg] $msg lappend result [catch {ns b c d} msg] $msg lappend result [catch {ns c d e} msg] $msg lappend result [catch {ns Magic foo bar spong wibble} msg] $msg list $result [lsort [info commands ::ns::*]] $log [namespace delete ns] } {{0 2 0 2 0 2 0 2 1 {unknown or protected subcommand "Magic"}} {::ns::Magic ::ns::a ::ns::b ::ns::c} {{making a} {running ::ns::a b c} {running ::ns::a b c} {making b} {running ::ns::b c d} {making c} {running ::ns::c d e} {unknown Magic - args = foo bar spong wibble}} {}} test namespace-47.2 {ensemble: unknown handler} { namespace eval ns { namespace export {[a-z]*} proc Magic {ensemble subcmd args} { error foobar } namespace ensemble create -unknown ::ns::Magic |
︙ | ︙ | |||
3223 3224 3225 3226 3227 3228 3229 | } -cleanup { namespace delete ns } -result\ {0 0\ 1 {wrong # args: should be "ns z1 x a1"}\ 1 {wrong # args: should be "ns z2 x a1 a2"}\ 1 {wrong # args: should be "ns z2 x a1 a2"}\ | | | 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 | } -cleanup { namespace delete ns } -result\ {0 0\ 1 {wrong # args: should be "ns z1 x a1"}\ 1 {wrong # args: should be "ns z2 x a1 a2"}\ 1 {wrong # args: should be "ns z2 x a1 a2"}\ 1 {wrong # args: should be "::ns::x::z0"}\ 0 {1 v}\ 1 {wrong # args: should be "ns v x z2 a2"}\ 0 {2 v v2}} test namespace-53.11 {ensembles: nested rewrite} -setup { namespace eval ns { namespace export x namespace eval x { |
︙ | ︙ | |||
3308 3309 3310 3311 3312 3313 3314 | return [lsort $gone] } finally { namespace delete ::testing } } } {::testing::abc::def ::testing::abc::ghi} | | > > > > > > > > > > > > > | 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 | return [lsort $gone] } finally { namespace delete ::testing } } } {::testing::abc::def ::testing::abc::ghi} test namespace-56.4 {bug 16fe1b5807: names starting with ":"} knownBug { namespace eval : { namespace ensemble create namespace export * proc p1 {} { return 16fe1b5807 } } : p1 } 16fe1b5807 test namespace-56.5 {Bug 8b9854c3d8} -setup { namespace eval namespace-56.5 { proc cmd {} {string match ::* [lindex [[string cat info] level 0] 0]} namespace export * namespace ensemble create } } -body { namespace-56.5 cmd } -cleanup { namespace delete namespace-56.5 } -result 1 # cleanup catch {rename cmd1 {}} catch {unset l} catch {unset msg} catch {unset trigger} namespace delete {*}[namespace children :: test_ns_*] ::tcltest::cleanupTests return # Local Variables: # mode: tcl # End: |