diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2010-10-20 13:34:09 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2010-10-20 13:34:09 (GMT) |
commit | af0efce59e0440d75633b2dac8ab9ecd39806a30 (patch) | |
tree | e6696e5723dc7f6b5911fdaaec323e228b564d7a /generic/tclCompile.c | |
parent | 278b4c9ebf643183f815790c3c646b71937f8268 (diff) | |
download | tcl-af0efce59e0440d75633b2dac8ab9ecd39806a30.zip tcl-af0efce59e0440d75633b2dac8ab9ecd39806a30.tar.gz tcl-af0efce59e0440d75633b2dac8ab9ecd39806a30.tar.bz2 |
* generic/tclCompCmds.c (TclCompileDictForCmd): Update the compilation
* generic/tclCompile.c (tclInstructionTable): of [dict for] so that
* generic/tclExecute.c (TEBCresume): it no longer makes any
use of INST_DICT_DONE now that's not needed, and make it clearer in
the implementation of the instruction that it's just a deprecated form
of unset operation. Followup to my commit of 2010-10-16.
Diffstat (limited to 'generic/tclCompile.c')
-rw-r--r-- | generic/tclCompile.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/generic/tclCompile.c b/generic/tclCompile.c index dd92f27..7781066 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCompile.c,v 1.191 2010/10/13 17:10:57 dgp Exp $ + * RCS: @(#) $Id: tclCompile.c,v 1.192 2010/10/20 13:34:11 dkf Exp $ */ #include "tclInt.h" @@ -343,14 +343,16 @@ InstructionDesc const tclInstructionTable[] = { * Stack: ... key valueToAppend => ... newDict */ {"dictFirst", 5, +2, 1, {OPERAND_LVT4}}, /* Begin iterating over the dictionary, using the local scalar - * indicated by op4 to hold the iterator state. If doneBool is true, - * dictDone *must* be called later on. + * indicated by op4 to hold the iterator state. The local scalar + * should not refer to a named variable as the value is not wholly + * managed correctly. * Stack: ... dict => ... value key doneBool */ {"dictNext", 5, +3, 1, {OPERAND_LVT4}}, /* Get the next iteration from the iterator in op4's local scalar. * Stack: ... => ... value key doneBool */ {"dictDone", 5, 0, 1, {OPERAND_LVT4}}, - /* Terminate the iterator in op4's local scalar. */ + /* Terminate the iterator in op4's local scalar. Use unsetScalar + * instead (with 0 for flags). */ {"dictUpdateStart", 9, 0, 2, {OPERAND_LVT4, OPERAND_AUX4}}, /* Create the variables (described in the aux data referred to by the * second immediate argument) to mirror the state of the dictionary in |