Tcl Source Code

View Ticket
Login
Ticket UUID: 3371315
Title: Crash with Ttk on Win7-64bit
Type: Bug Version: obsolete: 8.5.10
Submitter: jmcuaz Created on: 2011-07-19 13:27:37
Subsystem: 69. Other Assigned To: patthoyts
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2011-07-19 21:55:52
Resolution: Invalid Closed By: jmcuaz
    Closed on: 2011-07-19 14:13:08
Description:
Hello,

I have just installed the latest 8.5.10 -Win64bit- Tcl distribution from Active State on a new Win7-64bit PC and I am experimenting crashes with the GUI (Tk/Ttk) of an application running without pb on WinXP.

Narrowing the source of the crash on Win7 seems to point to Ttk being involved.

I attach a small script wich reproduce the crash on my machine : execute it, then click on the button -> crash (I need to wait 2-3 seconds to see the crash icon in the Win7 task bar...)

Thanks

Jean-Marie
User Comments: patthoyts added on 2011-07-19 21:55:52:
In fact I think this was the subject of the post-release patch:
 3341056 Correct segfault due to flaw in the 2011-06-17 commit.
a current 8-5-branch build doesn't crash with the provided script.

patthoyts added on 2011-07-19 21:51:43:
The most obvious response is 'dont do that'. You are deleting a widget while still processing it's event handler. For something like this you should disconnect the button event from its consequences using a construction like:
 ttk::button .b -text MAJ -command [list after idle proc_Btn]

It shouldn't crash - so presumably we are missing a place where there should be a TkWindow pointer and its now been deleted and we will need to add a guard against this. But don't do it like this - use after.

jmcuaz added on 2011-07-19 21:13:08:

allow_comments - 1

Closing the item here and re-openning on Tk Toolkit project

dkf added on 2011-07-19 20:47:51:
Please file against Tk.

jmcuaz added on 2011-07-19 20:27:39:

File Added - 418642: CrashTtk_Win7_64bit.tcl

Attachments: