changeset 15771:aa1cd3bbb0b0 draft

(svn r20445) -Codechange (r20435): Some compilers (esp. mine) do not comply to the specs.
author frosch <frosch@openttd.org>
date Wed, 11 Aug 2010 07:42:47 +0000
parents ecdb897e3cd5
children 1a21d8e5c3fa
files src/newgrf_commons.h
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/newgrf_commons.h
+++ b/src/newgrf_commons.h
@@ -141,7 +141,13 @@
  */
 template <size_t Tcnt>
 struct GRFFilePropsBase {
-	/* The lack of constructor means the default zero-ing constructor is used. */
+	GRFFilePropsBase() : local_id(0), grffile(0)
+	{
+		/* The lack of some compilers to provide default constructors complying to the specs
+		 * requires us to zero the stuff ourself. */
+		memset(spritegroup, 0, sizeof(spritegroup));
+	}
+
 	uint16 local_id;                             ///< id defined by the grf file for this entity
 	const struct GRFFile *grffile;               ///< grf file that introduced this entity
 	const struct SpriteGroup *spritegroup[Tcnt]; ///< pointer to the different sprites of the entity
@@ -153,8 +159,6 @@
 	GRFFileProps(uint16 subst_id) :
 			GRFFilePropsBase<1>(), subst_id(subst_id), override(subst_id)
 	{
-		/* Check whether the constructor did comply with the specs. */
-		assert(this->spritegroup[0] == NULL);
 	}
 
 	/** Simple constructor for the props. */