summaryrefslogtreecommitdiff
path: root/src/newgrf_storage.cpp
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2011-06-11 20:40:46 +0000
committerfrosch <frosch@openttd.org>2011-06-11 20:40:46 +0000
commitb2275b40935603d15030a8f79fff1f56bdb5ab0e (patch)
treeaf594dfcba891537d7dfac79525e921d9c2b75d2 /src/newgrf_storage.cpp
parent86f931a065ca11c375c536872beb61ab3935e8e0 (diff)
downloadopenttd-b2275b40935603d15030a8f79fff1f56bdb5ab0e.tar.xz
(svn r22551) -Fix: Remove BaseStorageArrays from _changed_storage_arrays on destruction.
Diffstat (limited to 'src/newgrf_storage.cpp')
-rw-r--r--src/newgrf_storage.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/newgrf_storage.cpp b/src/newgrf_storage.cpp
index 27a806ab1..c1c736e20 100644
--- a/src/newgrf_storage.cpp
+++ b/src/newgrf_storage.cpp
@@ -17,6 +17,14 @@
static std::set<BaseStorageArray*> _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.