mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-10-31 15:20:10 +00:00
(svn r14669) -Codechange: use SmallVector instead of std::list at one place
This commit is contained in:
parent
0bf775a20a
commit
3cd2957544
@ -44,6 +44,17 @@ public:
|
||||
this->items = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all items from the list and free allocated memory.
|
||||
*/
|
||||
void Reset()
|
||||
{
|
||||
this->items = 0;
|
||||
this->capacity = 0;
|
||||
free(data);
|
||||
data = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compact the list down to the smallest block size boundary.
|
||||
*/
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "rail.h"
|
||||
#include "settings_type.h"
|
||||
#include "aircraft.h"
|
||||
#include "core/smallvec_type.hpp"
|
||||
#include <map>
|
||||
|
||||
|
||||
@ -1086,15 +1087,14 @@ struct ListOrderChange {
|
||||
EngineID target;
|
||||
};
|
||||
|
||||
static std::list<ListOrderChange> _list_order_changes;
|
||||
static SmallVector<ListOrderChange, 16> _list_order_changes;
|
||||
|
||||
void AlterVehicleListOrder(EngineID engine, EngineID target)
|
||||
{
|
||||
/* Add the list order change to a queue */
|
||||
ListOrderChange loc;
|
||||
loc.engine = engine;
|
||||
loc.target = target;
|
||||
_list_order_changes.push_back(loc);
|
||||
ListOrderChange *loc = _list_order_changes.Append();
|
||||
loc->engine = engine;
|
||||
loc->target = target;
|
||||
}
|
||||
|
||||
void CommitVehicleListOrderChanges()
|
||||
@ -1103,8 +1103,8 @@ void CommitVehicleListOrderChanges()
|
||||
typedef std::map<uint16, Engine*> ListPositionMap;
|
||||
ListPositionMap lptr_map;
|
||||
|
||||
std::list<ListOrderChange>::iterator it;
|
||||
for (it = _list_order_changes.begin(); it != _list_order_changes.end(); ++it) {
|
||||
const ListOrderChange *end = _list_order_changes.End();
|
||||
for (const ListOrderChange *it = _list_order_changes.Begin(); it != end; ++it) {
|
||||
EngineID engine = it->engine;
|
||||
EngineID target = it->target;
|
||||
|
||||
@ -1139,5 +1139,5 @@ void CommitVehicleListOrderChanges()
|
||||
}
|
||||
|
||||
/* Clear out the queue */
|
||||
_list_order_changes.clear();
|
||||
_list_order_changes.Reset();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user