Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch bug-3418547 Excluding Merge-Ins
This is equivalent to a diff from e087838b90 to 6fa2f53c7f
2016-09-16
| ||
09:09 | merge core-8-6-branch check-in: 26ceff2e2c user: jan.nijtmans tags: trunk | |
2016-09-14
| ||
13:38 | Pulling changes from trunk check-in: 0252986ec0 user: hypnotoad tags: core_zip_vfs | |
2016-09-09
| ||
16:07 | merge trunk Leaf check-in: 6fa2f53c7f user: dgp tags: bug-3418547 | |
12:42 | merge trunk check-in: 7a1aabb850 user: dgp tags: tip-445 | |
12:39 | Maintain the changed behavior for unset traces on local vars at proc return. Update the docs to new ... check-in: ac5aef4799 user: dgp tags: novem | |
12:36 | Revert b98ee56376. The "bug" fixed was documented behavior. check-in: e087838b90 user: dgp tags: trunk | |
07:28 | Remove unnecessary use of fpsetround. See https://bugs.freebsd.org/212512 check-in: 20c19f9d55 user: gahr tags: trunk | |
2016-09-08
| ||
02:38 | [7f02ff1efa] Fix scope for var unset traces when procs return. *** POTENTIAL INCOMPATIBILITY *** check-in: b98ee56376 user: dgp tags: trunk | |
2016-07-26
| ||
18:40 | merge trunk check-in: 95b5fc0a7a user: dgp tags: bug-3418547 | |
Changes to generic/tclBasic.c.
︙ | |||
1938 1939 1940 1941 1942 1943 1944 | 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 | - - - - - - - - - - - | if (!isNew) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "exposed command \"%s\" already exists", cmdName)); Tcl_SetErrorCode(interp, "TCL", "EXPOSE", "COMMAND_EXISTS", NULL); return TCL_ERROR; } |
︙ | |||
2105 2106 2107 2108 2109 2110 2111 | 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 | - - - - - - - - - - - | * the new command (if we try to delete it again, we could get * stuck in an infinite loop). */ ckfree(Tcl_GetHashValue(hPtr)); } } else { |
︙ | |||
2301 2302 2303 2304 2305 2306 2307 | 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 | - - - - - - - - - - - | * the new command (if we try to delete it again, we could get * stuck in an infinite loop). */ ckfree(Tcl_GetHashValue(hPtr)); } } else { |
︙ | |||
2623 2624 2625 2626 2627 2628 2629 | 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 | - - - - - - - - - - - | * the info will be soon enough. These might refer to the same variable, * but that's no big deal. */ TclInvalidateNsCmdLookup(cmdNsPtr); TclInvalidateNsCmdLookup(cmdPtr->nsPtr); |
︙ |
Changes to generic/tclCompile.h.
︙ | |||
1156 1157 1158 1159 1160 1161 1162 | 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 | - - | MODULE_SCOPE void TclPushVarName(Tcl_Interp *interp, Tcl_Token *varTokenPtr, CompileEnv *envPtr, int flags, int *localIndexPtr, int *isScalarPtr); MODULE_SCOPE void TclPreserveByteCode(ByteCode *codePtr); MODULE_SCOPE void TclReleaseByteCode(ByteCode *codePtr); MODULE_SCOPE void TclReleaseLiteral(Tcl_Interp *interp, Tcl_Obj *objPtr); |
︙ |
Changes to generic/tclLiteral.c.
︙ | |||
999 1000 1001 1002 1003 1004 1005 | 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | * Free up the old bucket array, if it was dynamically allocated. */ if (oldBuckets != tablePtr->staticBuckets) { ckfree(oldBuckets); } } |
︙ |
Changes to generic/tclObj.c.
︙ | |||
4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 | 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 | + | register Tcl_Obj *objPtr) /* The object containing the command's name. * If the name starts with "::", will be * looked up in global namespace. Else, looked * up first in the current namespace, then in * global namespace. */ { register ResolvedCmdName *resPtr; Tcl_Command result = NULL; /* * Get the internal representation, converting to a command type if * needed. The internal representation is a ResolvedCmdName that points to * the actual command. * * Check the context namespace and the namespace epoch of the resolved |
︙ | |||
4171 4172 4173 4174 4175 4176 4177 | 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 | - - - - - + + + + + + + + | /* * OK, must create a new internal representation (or fail) as any cache we * had is invalid one way or another. */ /* See [07d13d99b0a9] why we cannot call SetCmdNameFromAny() directly here. */ |
︙ | |||
4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 | 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 | + | if (objPtr->typePtr == &tclCmdNameType) { resPtr = objPtr->internalRep.twoPtrValue.ptr1; if (resPtr != NULL && resPtr->cmdPtr == cmdPtr) { return; } } return; SetCmdNameObj(interp, objPtr, cmdPtr, NULL); } /* *---------------------------------------------------------------------- * |
︙ |
Changes to tests/resolver.test.
︙ | |||
37 38 39 40 41 42 43 | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 | + - + + - + - + - + + - + - + - + + + - + - + - + + + - + - + + - + + - + - + - + + + - + - + | # resulting CmdName Tcl_Obj with the print string "z". The CmdName Tcl_Obj # is turned into a command literal shared for a given (here: the global) # namespace. set r0 [x]; # --> The result of [x] is "Y" # 2) After having requested cmd resolution above, we can now use the # globally shared CmdName Tcl_Obj "z", now bound to cmd ::y. This is # certainly questionable, but defensible set r1 untouched |
︙ |