diff options
-rw-r--r-- | jim.c | 1 | ||||
-rw-r--r-- | regtest.tcl | 8 |
2 files changed, 9 insertions, 0 deletions
@@ -4911,6 +4911,7 @@ static void JimAppendStackTrace(Jim_Interp *interp, const char *procname, } if (Jim_IsShared(interp->stackTrace)) { + Jim_DecrRefCount(interp, interp->stackTrace); interp->stackTrace = Jim_DuplicateObj(interp, interp->stackTrace); Jim_IncrRefCount(interp->stackTrace); } diff --git a/regtest.tcl b/regtest.tcl index 05f0ac6..8f541ba 100644 --- a/regtest.tcl +++ b/regtest.tcl @@ -91,6 +91,14 @@ puts "TEST 13 PASSED" eval "{*}{}" puts "TEST 14 PASSED" +# REGTEST 15 +# 24 Feb 2010 - bad reference counting of the stack trace in 'error' +proc a {msg stack} { + tailcall error $msg $stack +} +catch {fail} msg opts +catch {a $msg $opts(-errorinfo)} + # TAKE THE FOLLOWING puts AS LAST LINE |