diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2013-10-13 13:34:01 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2013-10-13 13:34:01 (GMT) |
commit | 62cb43456456d34b7a1b738feb2d2114915aff3c (patch) | |
tree | 6dda2c6d242d57572eeccdd5fc5eb1cbc9bd9256 | |
parent | 18620aebd7623aaa3031162500c392cf2fa6ade7 (diff) | |
download | tcl-62cb43456456d34b7a1b738feb2d2114915aff3c.zip tcl-62cb43456456d34b7a1b738feb2d2114915aff3c.tar.gz tcl-62cb43456456d34b7a1b738feb2d2114915aff3c.tar.bz2 |
update comments
-rw-r--r-- | generic/tclCompCmdsGR.c | 1 | ||||
-rw-r--r-- | generic/tclCompile.c | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/generic/tclCompCmdsGR.c b/generic/tclCompCmdsGR.c index 43ea3d3..3efcba7 100644 --- a/generic/tclCompCmdsGR.c +++ b/generic/tclCompCmdsGR.c @@ -2480,6 +2480,7 @@ TclCompileReturnCmd( * emit the INST_RETURN_IMM instruction with code and level as operands. */ + // TODO: when (code==TCL_BREAK || code==TCL_CONTINUE)&&(level==0&&size==0), check for stack balance and jump opportunities CompileReturnInternal(envPtr, INST_RETURN_IMM, code, level, returnOpts); return TCL_OK; diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 74a9c8c..68b7649 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -3901,6 +3901,27 @@ TclFixupForwardJump( return 1; /* the jump was grown */ } +/* + *---------------------------------------------------------------------- + * + * TclEmitInvoke -- + * + * Emit one of the invoke-related instructions, wrapping it if necessary + * in code that ensures that any break or continue operation passing + * through it gets the stack unwinding correct, converting it into an + * internal jump if in an appropriate context. + * + * Results: + * None + * + * Side effects: + * Issues the jump with all correct stack management. May create another + * loop exception range; pointers to ExceptionRange and ExceptionAux + * structures should not be held across this call. + * + *---------------------------------------------------------------------- + */ + void TclEmitInvoke( CompileEnv *envPtr, |