diff options
author | dgp <dgp@users.sourceforge.net> | 2015-07-05 16:52:27 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2015-07-05 16:52:27 (GMT) |
commit | 28fa5866e5d7d7cfd06c0b3dbab330672c05b992 (patch) | |
tree | e0e701e0e09bc7d877abc181835d1d38fd4b4670 | |
parent | 39d7c094ed9109b6264d265808b69f5f99841693 (diff) | |
download | tcl-28fa5866e5d7d7cfd06c0b3dbab330672c05b992.zip tcl-28fa5866e5d7d7cfd06c0b3dbab330672c05b992.tar.gz tcl-28fa5866e5d7d7cfd06c0b3dbab330672c05b992.tar.bz2 |
[a0ece9d6d4] The cmd field of a CmdFrame when non-NULL must point within the
string of the corresponding codePtr->source.
-rw-r--r-- | generic/tclExecute.c | 1 | ||||
-rw-r--r-- | tests/execute.test | 9 |
2 files changed, 9 insertions, 1 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 38f11f2..d12a25c 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -9904,7 +9904,6 @@ TclGetSourceFromFrame( cfPtr->cmdObj = Tcl_NewStringObj(cfPtr->cmd, cfPtr->len); } else { cfPtr->cmdObj = Tcl_NewListObj(objc, objv); - cfPtr->cmd = Tcl_GetStringFromObj(cfPtr->cmdObj, &cfPtr->len); } Tcl_IncrRefCount(cfPtr->cmdObj); } diff --git a/tests/execute.test b/tests/execute.test index aaf4bc0..9a2ffbd 100644 --- a/tests/execute.test +++ b/tests/execute.test @@ -1057,6 +1057,15 @@ test execute-11.2 {Bug 268b23df11} -setup { rename crash {} rename zero {} } -result 0 +test execute-11.3 {Bug a0ece9d6d4} -setup { + proc crash {} {expr {rand()}} + trace add execution crash enterstep {apply {args {info frame -2}}} +} -body { + string is double [crash] +} -cleanup { + trace remove execution crash enterstep {apply {args {info frame -2}}} + rename crash {} +} -result 1 # cleanup if {[info commands testobj] != {}} { |