In Tk 8.4.11, running the 'tag configure' subcommand on
a text widget for a tag which has not previously
been 'declared', with no arguments, crashes the
program. For example,
text .t
.t tag configure foobar
will crash, but
text .t
.t tag configure foobar -underline 0
.t tag configure foobar
will not.
Logged In: YES
user_id=32170
I have no knowledge about Tk 8.4's pre-objectified text
widget. Handing over to maintainer.
Logged In: YES
user_id=72656
This was caused by a change in generic/tkOldConfig.c by dkf
when doing some sort of caching.
Last few lines of a stack trace:
Tk_ConfigureInfo(Tcl_Interp * 0x00a65240, Tk_Window_ *
0x00c06a00, Tk_ConfigSpec * 0x004f4d88 tagConfigSpecs, char
* 0x00c08468, const char * 0x00000000, int 0) line 697 + 3 bytes
TkTextTagCmd(TkText * 0x00c06b18, Tcl_Interp * 0x00a65240,
int 4, const char * * 0x0012e4e8) line 298 + 28 bytes
TextWidgetCmd(void * 0x00c06b18, Tcl_Interp * 0x00a65240,
int 4, const char * * 0x0012e4e8) line 862 + 21 bytes
The problem is really line 697 where cachedSpecPtr is trying
to be set to Tcl_GetHashValue of an entryPtr that is NULL.
I'm passing to dkf as he knows more what was changed and why.
Logged In: YES
user_id=79902
Factorized out the code that produces the code that creates
writable copies of config specs and made that code called in
all the appropriate places.
Fixed in HEAD and 8.4 branch.