changeset 17692:a7cbdcbb931c draft

(svn r22472) -Fix: When a NewGRF assigned station properties 09 and/or 0A multiple times, the previously allocated sprite layouts were not freed.
author frosch <frosch@openttd.org>
date Tue, 17 May 2011 20:11:19 +0000
parents bf82368faab9
children cdeed5a57cdb
files src/newgrf.cpp
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -1221,6 +1221,8 @@
 			}
 
 			case 0x09: // Define sprite layout
+				delete[] statspec->renderdata; // delete earlier loaded stuff
+
 				statspec->tiles = buf->ReadExtendedByte();
 				statspec->renderdata = new NewGRFSpriteLayout[statspec->tiles];
 
@@ -1281,6 +1283,8 @@
 					continue;
 				}
 
+				delete[] statspec->renderdata; // delete earlier loaded stuff
+
 				statspec->tiles = srcstatspec->tiles;
 				statspec->renderdata = new NewGRFSpriteLayout[statspec->tiles];
 				for (uint t = 0; t < statspec->tiles; t++) {