diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2015-07-07 15:20:34 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2015-07-07 15:20:34 (GMT) |
commit | 3cbff9f968ec8d9d215341a263bd40903b8a782e (patch) | |
tree | 31a3c3ed7df6d40f8f9ed76b8482225e1fa5839d /generic/tkOldConfig.c | |
parent | 23378d66e9d5598a406f1d396412a33b6e00feac (diff) | |
download | tk-3cbff9f968ec8d9d215341a263bd40903b8a782e.zip tk-3cbff9f968ec8d9d215341a263bd40903b8a782e.tar.gz tk-3cbff9f968ec8d9d215341a263bd40903b8a782e.tar.bz2 |
Fix for [805cffb017fde5ba]: segfault via Tk_ConfigureWidget
Diffstat (limited to 'generic/tkOldConfig.c')
-rw-r--r-- | generic/tkOldConfig.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/generic/tkOldConfig.c b/generic/tkOldConfig.c index 97ad5cb..d7a33f7 100644 --- a/generic/tkOldConfig.c +++ b/generic/tkOldConfig.c @@ -112,6 +112,10 @@ Tk_ConfigureWidget( specs = GetCachedSpecs(interp, specs); + for (specPtr = specs; specPtr->type != TK_CONFIG_END; specPtr++) { + specPtr->specFlags &= ~TK_CONFIG_OPTION_SPECIFIED; + } + /* * Pass one: scan through all of the arguments, processing those that * match entries in the specs. @@ -167,7 +171,6 @@ Tk_ConfigureWidget( if ((specPtr->specFlags & TK_CONFIG_OPTION_SPECIFIED) || (specPtr->argvName == NULL) || (specPtr->type == TK_CONFIG_SYNONYM)) { - specPtr->specFlags &= ~TK_CONFIG_OPTION_SPECIFIED; continue; } if (((specPtr->specFlags & needFlags) != needFlags) @@ -1128,7 +1131,6 @@ GetCachedSpecs( specPtr->defValue = Tk_GetUid(specPtr->defValue); } } - specPtr->specFlags &= ~TK_CONFIG_OPTION_SPECIFIED; } } else { cachedSpecs = (Tk_ConfigSpec *) Tcl_GetHashValue(entryPtr); |