| Ticket UUID: | 6bdadfba7de3f9a8881e1ca4726f3c7fb8d5da17 | ||
| Title: | Traces crash with multi-lappend | ||
| Type: | Bug | Created on: | 2019-06-20 19:40:00 |
| Submitter: | dkf | Assigned to: | dkf |
| Subsystem: | 47. Bytecode Compiler | Severity: | Severe |
| Priority: | 9 Immediate | Last modified: | 2023-03-24 21:35:46 |
| Status: | Closed | Closed by: | pooryorick |
| Resolution: | Fixed | Closed on: | 2023-03-24 21:35:46 |
| Version: | 8.6 | ||
| Description: | ||||
|
This script crashes. It shouldn't.
set x 1
lappend x 2 3
set y $x
trace add variable x write {apply {args {error boo}}}
lappend x 4 5
| ||||
| User Comments: | ||||
pooryorick added on 2023-03-21 16:53:51:
Fixed by dkf in [ca4a6f0a9595ac1f]. pooryorick added on 2023-03-21 23:54:36:
Commit [c0778ccb77b7d096] removes the unneeded calls to Tcl_IncrRefCount() and TclDecrRefCount() from the fix. TclPtrSetVarIdx() takes ownership of newValuePtr if its refCount is 0, and either stores or frees it. pooryorick added on 2023-03-24 21:35:46:
This was a simple programming error, not anything related to elaborate refCounting. | ||||
