summaryrefslogtreecommitdiffstats
path: root/generic/tkOldConfig.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2015-07-07 15:24:07 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2015-07-07 15:24:07 (GMT)
commitb8a9fa274d90f1cd1beff06bd4c02f6e5719bfbb (patch)
treec956e3e129f10fa84af19ee55a89a86099fbb85a /generic/tkOldConfig.c
parentef0c732090d8b9bf1befc7852588746f6b2f33e4 (diff)
parent498f83aef90d461803b7c8bce162a1abc3b90a79 (diff)
downloadtk-b8a9fa274d90f1cd1beff06bd4c02f6e5719bfbb.zip
tk-b8a9fa274d90f1cd1beff06bd4c02f6e5719bfbb.tar.gz
tk-b8a9fa274d90f1cd1beff06bd4c02f6e5719bfbb.tar.bz2
Fix for [805cffb017fde5ba]: segfault via Tk_ConfigureWidget
Diffstat (limited to 'generic/tkOldConfig.c')
-rw-r--r--generic/tkOldConfig.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/generic/tkOldConfig.c b/generic/tkOldConfig.c
index d2d864f..87f4987 100644
--- a/generic/tkOldConfig.c
+++ b/generic/tkOldConfig.c
@@ -113,6 +113,10 @@ Tk_ConfigureWidget(
staticSpecs = GetCachedSpecs(interp, specs);
+ for (specPtr = staticSpecs; 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)
@@ -1126,7 +1129,6 @@ GetCachedSpecs(
specPtr->defValue = Tk_GetUid(specPtr->defValue);
}
}
- specPtr->specFlags &= ~TK_CONFIG_OPTION_SPECIFIED;
}
} else {
cachedSpecs = Tcl_GetHashValue(entryPtr);