Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Partial revert of [a16752c252] bug fix to stop crashes in buggy tclcompiler. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-5-branch |
Files: | files | file ages | folders |
SHA1: |
d7ad86353feff20ec41a46d7ece3ae0f |
User & Date: | dgp 2013-09-07 18:49:55 |
Context
2013-09-07
| ||
21:36 | [86ceb4e2b6] Improve reaction when multiple *tm files purport to offer the same version of the same ... check-in: f55d921665 user: dgp tags: core-8-5-branch | |
18:49 | Partial revert of [a16752c252] bug fix to stop crashes in buggy tclcompiler. check-in: d7ad86353f user: dgp tags: core-8-5-branch | |
2013-09-05
| ||
17:21 | Partial revert of [a16752c252] bug fix to stop crashes in buggy tclcompiler. Closed-Leaf check-in: cd9e4957c5 user: dgp tags: unbreak-tclcompiler | |
2013-08-15
| ||
19:55 | Make sure the errors raised by execution traces become errors raised by the traced command, as docum... check-in: f3fac8ede1 user: dgp tags: core-8-5-branch | |
Changes
Changes to generic/tclBasic.c.
︙ | ︙ | |||
1963 1964 1965 1966 1967 1968 1969 | * * Results: * The return value is a token for the command, which can be used in * future calls to Tcl_GetCommandName. * * Side effects: * If a command named "cmdName" already exists for interp, it is | | > | 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 | * * Results: * The return value is a token for the command, which can be used in * future calls to Tcl_GetCommandName. * * Side effects: * If a command named "cmdName" already exists for interp, it is * first deleted. Then the new command is created from the arguments. * [***] (See below for exception). * * In the future, during bytecode evaluation when "cmdName" is seen as * the name of a command by Tcl_EvalObj or Tcl_Eval, the object-based * Tcl_ObjCmdProc proc will be called. When the command is deleted from * the table, deleteProc will be called. See the manual entry for details * on the calling sequence. * |
︙ | ︙ | |||
2029 2030 2031 2032 2033 2034 2035 2036 2037 | tail = cmdName; } hPtr = Tcl_CreateHashEntry(&nsPtr->cmdTable, tail, &isNew); TclInvalidateNsPath(nsPtr); if (!isNew) { cmdPtr = Tcl_GetHashValue(hPtr); /* | > > > > > > > > > > > > > > > > > > > | | 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 | tail = cmdName; } hPtr = Tcl_CreateHashEntry(&nsPtr->cmdTable, tail, &isNew); TclInvalidateNsPath(nsPtr); if (!isNew) { cmdPtr = Tcl_GetHashValue(hPtr); /* Command already exists. */ /* * [***] This is wrong. See Tcl Bug a16752c252. * However, this buggy behavior is kept under particular * circumstances to accommodate deployed binaries of the * "tclcompiler" program. http://sourceforge.net/projects/tclpro/ * that crash if the bug is fixed. */ if (cmdPtr->objProc == TclInvokeStringCommand && cmdPtr->clientData == clientData && cmdPtr->deleteData == clientData && cmdPtr->deleteProc == deleteProc) { cmdPtr->objProc = proc; cmdPtr->objClientData = clientData; return (Tcl_Command) cmdPtr; } /* * Otherwise, we delete the old command. Be careful to preserve any * existing import links so we can restore them down below. That way, * you can redefine a command and its import status will remain * intact. */ oldRefPtr = cmdPtr->importRefPtr; cmdPtr->importRefPtr = NULL; |
︙ | ︙ |