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 | 4ce2c3e6e7ca0a108a6b0a502f9349ce319e2c55 (patch) | |
| tree | e0e701e0e09bc7d877abc181835d1d38fd4b4670 | |
| parent | b00e732483f413217639517f5964e1c518821041 (diff) | |
| download | tcl-4ce2c3e6e7ca0a108a6b0a502f9349ce319e2c55.zip tcl-4ce2c3e6e7ca0a108a6b0a502f9349ce319e2c55.tar.gz tcl-4ce2c3e6e7ca0a108a6b0a502f9349ce319e2c55.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] != {}} { |
