# HG changeset patch # User frosch # Date 1307824846 0 # Node ID 6a3cc2837af97aac1ae9e85a3f69abee8fd90240 # Parent 1098d7a95f64ba940d8f8a06b66750769a67abcd (svn r22551) -Fix: Remove BaseStorageArrays from _changed_storage_arrays on destruction. diff --git a/src/newgrf_storage.cpp b/src/newgrf_storage.cpp --- a/src/newgrf_storage.cpp +++ b/src/newgrf_storage.cpp @@ -17,6 +17,14 @@ static std::set _changed_storage_arrays; /** + * Remove references to use. + */ +BaseStorageArray::~BaseStorageArray() +{ + _changed_storage_arrays.erase(this); +} + +/** * Add the changed storage array to the list of changed arrays. * This is done so we only have to revert/save the changed * arrays, which saves quite a few clears, etc. after callbacks. diff --git a/src/newgrf_storage.h b/src/newgrf_storage.h --- a/src/newgrf_storage.h +++ b/src/newgrf_storage.h @@ -20,8 +20,7 @@ */ struct BaseStorageArray { - /** The needed destructor */ - virtual ~BaseStorageArray() {} + virtual ~BaseStorageArray(); /** * Clear the changes made since the last ClearChanges.