1
0
Fork 0

(svn r6674) -Fix r6631: two loops had incorrect behaviour (out of bound access in widget arrays)

release/0.5
glx 2006-10-06 23:17:04 +00:00
parent ac0bada035
commit f7a5a4219c
1 changed files with 4 additions and 6 deletions

View File

@ -224,10 +224,9 @@ static void GraphLegendWndProc(Window *w, WindowEvent *e)
switch (e->event) {
case WE_CREATE: {
uint include_bits = ~_legend_excludebits;
int i;
for (i = 0; include_bits != 0; i++, include_bits >>= 1) {
if (HASBIT(include_bits, 0)) LowerWindowWidget(w, i + 3);
for (i = 0; w->widget[i + 3].type != WWT_LAST; i++) {
if (!HASBIT(_legend_excludebits, i)) LowerWindowWidget(w, i + 3);
}
break;
}
@ -706,10 +705,9 @@ static void CargoPaymentRatesWndProc(Window *w, WindowEvent *e)
{
switch (e->event) {
case WE_CREATE: {
uint to_select = ~_legend_cargobits;
int i;
for (i = 0; to_select != 0; i++, to_select >>= 1) {
if (HASBIT(to_select, 0)) LowerWindowWidget(w, i + 3);
for (i = 0; w->widget[i + 3].type != WWT_LAST; i++) {
if (!HASBIT(_legend_cargobits, i)) LowerWindowWidget(w, i + 3);
}
break;
}