changeset 4651:0f4aabf98f5a draft

(svn r6527) -Codechange: [depot window] added asserts to ensure that widget names, widget array and array of resize info stays the same length Really bad stuff will happen if one of them contains a different number of widgets ;) This is meant as a protection against incorrect additions of code rather than verifying that the current code works
author bjarni <bjarni@openttd.org>
date Wed, 27 Sep 2006 14:05:15 +0000
parents 8030fac888d1
children 05216959db26
files depot_gui.c
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/depot_gui.c
+++ b/depot_gui.c
@@ -56,6 +56,7 @@
 	DEPOT_WIDGET_CLONE,
 	DEPOT_WIDGET_LOCATION,
 	DEPOT_WIDGET_RESIZE,
+	DEPOT_WIDGET_LAST, // used to assert if DepotWindowWidgets and widget_moves got different lengths. Due to this usage, it needs to be last
 } DepotWindowWidget;
 
 /* Define how to move each widget. The order is important */
@@ -738,6 +739,10 @@
 {
 	Window *w;
 
+	/* First we ensure that the widget counts are equal in all 3 lists to prevent bad stuff from happening */
+	assert(lengthof(widget_moves) == lengthof(_depot_widgets));
+	assert(lengthof(widget_moves) == DEPOT_WIDGET_LAST);
+
 	switch (type) {
 		case VEH_Train:    w = AllocateWindowDescFront(&_train_depot_desc, tile);    break;
 		case VEH_Road:     w = AllocateWindowDescFront(&_road_depot_desc, tile);     break;