diff options
author | rubidium <rubidium@openttd.org> | 2013-11-08 22:28:57 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2013-11-08 22:28:57 +0000 |
commit | c04d635ddb35db736864273df655803a202ac80b (patch) | |
tree | f80b8e1804cb030fc9488ca5e944132be58880fe | |
parent | 169bf3a403883471cd74f52b416085af96fc5097 (diff) | |
download | openttd-c04d635ddb35db736864273df655803a202ac80b.tar.xz |
(svn r25956) -Fix [FS#5772]: temporary persistent storage modifications, e.g. command tests or those from GUI, were not properly reset, creating the possibility of desyncs
-rw-r--r-- | src/newgrf_storage.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/newgrf_storage.h b/src/newgrf_storage.h index f5044b05d..528d4ff3c 100644 --- a/src/newgrf_storage.h +++ b/src/newgrf_storage.h @@ -84,7 +84,7 @@ struct PersistentStorageArray : BaseStorageArray { if (this->storage[pos] == value) return; /* We do not have made a backup; lets do so */ - if (this->prev_storage != NULL) { + if (this->prev_storage == NULL) { this->prev_storage = MallocT<TYPE>(SIZE); memcpy(this->prev_storage, this->storage, sizeof(this->storage)); @@ -121,6 +121,7 @@ struct PersistentStorageArray : BaseStorageArray { memcpy(this->storage, this->prev_storage, sizeof(this->storage)); } free(this->prev_storage); + this->prev_storage = NULL; } }; |