Tcl Source Code

View Ticket
Login
Ticket UUID: 1671001
Title: [dict update] crash
Type: Bug Version: obsolete: 8.5a6
Submitter: dgp Created on: 2007-02-28 15:53:51
Subsystem: 47. Bytecode Compiler Assigned To: dkf
Priority: 9 Immediate Severity:
Status: Closed Last Modified: 2007-03-02 17:42:37
Resolution: Fixed Closed By: dkf
    Closed on: 2007-03-02 10:40:08
Description:
This script crashes in
INST_DICT_UPDATE_START:

proc demo x {
    set indices {2 3}
    trace add variable aa write {string length $indices ;# }
    dict update x k aa l bb {}
}
demo {k 1 l 2}

Same issue as other recent crash bugs.
A pointer into a List rep is retrieved,
not preserved, and attempts to use after
shimmering invalidates lead to crash.
User Comments: dkf added on 2007-03-02 17:42:37:
Logged In: YES 
user_id=79902
Originator: NO

Solved by using aux-data instead of refcounting the list internal rep; leads (with other changes) to clearer code output when debugging.

dkf added on 2007-03-01 16:02:22:
Logged In: YES 
user_id=79902
Originator: NO

I know how to fix this.

Thanks Don for figuring out how to actually tickle this bug.

dgp added on 2007-03-01 00:02:49:

File Added - 218183: 1671001.patch

Logged In: YES 
user_id=80530
Originator: YES

patch attached
File Added: 1671001.patch

dgp added on 2007-02-28 23:15:57:
Logged In: YES 
user_id=80530
Originator: YES


Change the "write" trace
to a "read" trace and you'll
get a different crash, this
time in INST_DICT_UPDATE_END

Attachments: