changeset 8476:6c5738316dcd draft

(svn r12049) -Fix (r10496)(r10619): memset on multibyte array with wrong byte count
author smatz <smatz@openttd.org>
date Sun, 03 Feb 2008 12:41:06 +0000
parents b4303c7799a1
children a4604eebf65c
files src/industry_gui.cpp
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/industry_gui.cpp
+++ b/src/industry_gui.cpp
@@ -57,6 +57,9 @@
 	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 @@
 			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;