Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | [3487626] Backport fix for knownBug test dict-23.2. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-5-branch |
Files: | files | file ages | folders |
SHA1: |
b8c8cdb8f4ea3f12faad4429e5edf540 |
User & Date: | dgp 2013-09-19 04:03:57 |
Context
2013-09-19
| ||
04:27 | Stop segfault due to OBOE in CompileWord() calls in [dict lappend] compiler. check-in: 166ffc0cc5 user: dgp tags: trunk | |
04:20 | Stop segfault due to OBOE in CompileWord() calls in [dict lappend] compiler. check-in: 12dfd2bea4 user: dgp tags: core-8-5-branch | |
04:03 | [3487626] Backport fix for knownBug test dict-23.2. check-in: b8c8cdb8f4 user: dgp tags: core-8-5-branch | |
2013-09-18
| ||
19:13 | merge release check-in: 6eb7e50d87 user: dgp tags: core-8-5-branch | |
Changes
Changes to generic/tclCompCmds.c.
︙ | ︙ | |||
6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 | { Tcl_Token *tokenPtr; Tcl_Obj *mapObj, *subcmdObj, *targetCmdObj, *listObj, **elems; Tcl_Command ensemble = (Tcl_Command) cmdPtr; Tcl_Parse synthetic; int len, numBytes, result, flags = 0, i; const char *word; if (parsePtr->numWords < 2) { return TCL_ERROR; } tokenPtr = TokenAfter(parsePtr->tokenPtr); if (tokenPtr->type != TCL_TOKEN_SIMPLE_WORD) { | > | 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 | { Tcl_Token *tokenPtr; Tcl_Obj *mapObj, *subcmdObj, *targetCmdObj, *listObj, **elems; Tcl_Command ensemble = (Tcl_Command) cmdPtr; Tcl_Parse synthetic; int len, numBytes, result, flags = 0, i; const char *word; DefineLineInformation; if (parsePtr->numWords < 2) { return TCL_ERROR; } tokenPtr = TokenAfter(parsePtr->tokenPtr); if (tokenPtr->type != TCL_TOKEN_SIMPLE_WORD) { |
︙ | ︙ | |||
6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 | sizeof(Tcl_Token) * toCopy); synthetic.numTokens += toCopy; } /* * Hand off compilation to the subcommand compiler. At last! */ result = cmdPtr->compileProc(interp, &synthetic, cmdPtr, envPtr); /* * Clean up if necessary. */ Tcl_FreeParse(&synthetic); return result; | > > > > > > | 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 | sizeof(Tcl_Token) * toCopy); synthetic.numTokens += toCopy; } /* * Hand off compilation to the subcommand compiler. At last! */ mapPtr->loc[eclIndex].line++; mapPtr->loc[eclIndex].next++; result = cmdPtr->compileProc(interp, &synthetic, cmdPtr, envPtr); mapPtr->loc[eclIndex].line--; mapPtr->loc[eclIndex].next--; /* * Clean up if necessary. */ Tcl_FreeParse(&synthetic); return result; |
︙ | ︙ |
Changes to tests/dict.test.
︙ | ︙ | |||
1208 1209 1210 1211 1212 1213 1214 | return [expr {$n - [linenumber]}] } } } } }} [linenumber] } 5 | | | 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 | return [expr {$n - [linenumber]}] } } } } }} [linenumber] } 5 test dict-23.2 {dict compilation crash: Bug 3487626} { # Something isn't quite right in line number and continuation line # tracking; at time of writing, this test produces 7, not 5, which # indicates that the extra newlines in the non-script argument are # confusing things. apply {n { set e {} set k {} |
︙ | ︙ |