From 0ca3977af85852937a069de49b96854df1835107 Mon Sep 17 00:00:00 2001 From: smatz Date: Sun, 3 Feb 2008 12:41:06 +0000 Subject: [PATCH] (svn r12049) -Fix (r10496)(r10619): memset on multibyte array with wrong byte count --- src/industry_gui.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 23cef6229b..48efeba3af 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -57,6 +57,9 @@ static struct IndustryData { bool enabled[NUM_INDUSTRYTYPES + 1]; ///< availability state, coming from CBID_INDUSTRY_AVAILABLE (if ever) } _fund_gui; +assert_compile(lengthof(_fund_gui.index) == lengthof(_fund_gui.text)); +assert_compile(lengthof(_fund_gui.index) == lengthof(_fund_gui.enabled)); + static void BuildDynamicIndustryWndProc(Window *w, WindowEvent *e) { switch (e->event) { @@ -79,11 +82,14 @@ static void BuildDynamicIndustryWndProc(Window *w, WindowEvent *e) WP(w, fnd_d).timer_enabled = _loaded_newgrf_features.has_newindustries; /* Initilialize structures */ - memset(&_fund_gui.index, 0xFF, NUM_INDUSTRYTYPES); - memset(&_fund_gui.text, STR_NULL, NUM_INDUSTRYTYPES); - memset(&_fund_gui.enabled, false, NUM_INDUSTRYTYPES); _fund_gui.count = 0; + for (uint i = 0; i < lengthof(_fund_gui.index); i++) { + _fund_gui.index[i] = 0xFF; + _fund_gui.text[i] = STR_NULL; + _fund_gui.enabled[i] = false; + } + w->vscroll.cap = 8; // rows in grid, same in scroller w->resize.step_height = 13;