From 8a6cc3aa104b5f8631dcb74343dcd68ffa3308ec Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 30 Aug 2007 20:40:33 +0000 Subject: [PATCH] (svn r11009) -Codechange: unvirtualise IsValid as that isn't needed with templates. This gives up to 10% performance increase in games with lots of vehicles. --- src/cargopacket.h | 2 +- src/depot.h | 2 +- src/engine.h | 2 +- src/industry.h | 2 +- src/oldpool.h | 9 --------- src/order.h | 14 +++++--------- src/signs.h | 2 +- src/station.cpp | 14 -------------- src/station.h | 13 +++++++++++-- src/town.h | 2 +- src/waypoint.cpp | 6 ------ src/waypoint.h | 2 +- 12 files changed, 23 insertions(+), 47 deletions(-) diff --git a/src/cargopacket.h b/src/cargopacket.h index 2dacb7bc25..3fde1bacce 100644 --- a/src/cargopacket.h +++ b/src/cargopacket.h @@ -43,7 +43,7 @@ struct CargoPacket : PoolItem { * Is this a valid cargo packet ? * @return true if and only it is valid */ - bool IsValid() const { return this->count != 0; } + inline bool IsValid() const { return this->count != 0; } /** * Checks whether the cargo packet is from (exactly) the same source diff --git a/src/depot.h b/src/depot.h index 1b3de1b867..70a12d0bcc 100644 --- a/src/depot.h +++ b/src/depot.h @@ -23,7 +23,7 @@ struct Depot : PoolItem { Depot(TileIndex xy = 0) : xy(xy) {} ~Depot(); - bool IsValid() const { return this->xy != 0; } + inline bool IsValid() const { return this->xy != 0; } }; static inline bool IsValidDepotID(DepotID index) diff --git a/src/engine.h b/src/engine.h index 6ee7d18c47..1ef09d3db8 100644 --- a/src/engine.h +++ b/src/engine.h @@ -284,7 +284,7 @@ struct EngineRenew : PoolItem { EngineRenew(EngineID from = INVALID_ENGINE, EngineID to = INVALID_ENGINE) : from(from), to(to), next(NULL) {} ~EngineRenew() { this->from = INVALID_ENGINE; } - bool IsValid() const { return this->from != INVALID_ENGINE; } + inline bool IsValid() const { return this->from != INVALID_ENGINE; } }; #define FOR_ALL_ENGINE_RENEWS_FROM(er, start) for (er = GetEngineRenew(start); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) if (er->IsValid()) diff --git a/src/industry.h b/src/industry.h index c19dd83aee..265f2a333a 100644 --- a/src/industry.h +++ b/src/industry.h @@ -123,7 +123,7 @@ struct Industry : PoolItem { Industry(TileIndex tile = 0) : xy(tile) {} ~Industry(); - bool IsValid() const { return this->xy != 0; } + inline bool IsValid() const { return this->xy != 0; } }; struct IndustryTileTable { diff --git a/src/oldpool.h b/src/oldpool.h index 9f79d632ed..4ca9dbf073 100644 --- a/src/oldpool.h +++ b/src/oldpool.h @@ -225,15 +225,6 @@ struct PoolItem { { } - /** - * Is this a valid object or not? - * @return true if and only if it is valid - */ - virtual bool IsValid() const - { - return false; - } - private: /** * Allocate a pool item; possibly allocate a new block in the pool. diff --git a/src/order.h b/src/order.h index 987b36a0d7..a9ccf383eb 100644 --- a/src/order.h +++ b/src/order.h @@ -107,7 +107,11 @@ struct Order : PoolItem { Order() : refit_cargo(CT_NO_REFIT) {} ~Order() { this->type = OT_NOTHING; } - bool IsValid() const; + /** + * Check if a Order really exists. + */ + inline bool IsValid() const { return this->type != OT_NOTHING; } + void Free(); void FreeChain(); }; @@ -140,14 +144,6 @@ static inline VehicleOrderID GetNumOrders() return GetOrderPoolSize(); } -/** - * Check if a Order really exists. - */ -inline bool Order::IsValid() const -{ - return this->type != OT_NOTHING; -} - inline void Order::Free() { this->type = OT_NOTHING; diff --git a/src/signs.h b/src/signs.h index 05af404eb3..59f07d1ed1 100644 --- a/src/signs.h +++ b/src/signs.h @@ -26,7 +26,7 @@ struct Sign : PoolItem { /** Destroy the sign */ ~Sign(); - bool IsValid() const { return this->str != STR_NULL; } + inline bool IsValid() const { return this->str != STR_NULL; } }; enum { diff --git a/src/station.cpp b/src/station.cpp index 78bdf2121b..d6d0f7a65c 100644 --- a/src/station.cpp +++ b/src/station.cpp @@ -237,14 +237,6 @@ bool Station::IsBuoy() const return (had_vehicle_of_type & HVOT_BUOY) != 0; } -/** Determines whether a station exists - * @todo replace 0 by INVALID_TILE - */ -bool Station::IsValid() const -{ - return xy != 0; -} - /************************************************************************/ /* StationRect implementation */ @@ -437,12 +429,6 @@ RoadStop::~RoadStop() xy = 0; } -/** Determines whether a RoadStop is a valid (i.e. existing) one */ -bool RoadStop::IsValid() const -{ - return xy != 0; -} - /** Checks whether there is a free bay in this road stop */ bool RoadStop::HasFreeBay() const { diff --git a/src/station.h b/src/station.h index 5f48abec20..71abc5750f 100644 --- a/src/station.h +++ b/src/station.h @@ -65,7 +65,11 @@ struct RoadStop : PoolItem { RoadStop(TileIndex tile = 0); virtual ~RoadStop(); - bool IsValid() const; + /** + * Determines whether a road stop exists + * @return true if and only is the road stop exists + */ + inline bool IsValid() const { return this->xy != 0; } /* For accessing status */ bool HasFreeBay() const; @@ -175,7 +179,12 @@ public: uint GetPlatformLength(TileIndex tile, DiagDirection dir) const; uint GetPlatformLength(TileIndex tile) const; bool IsBuoy() const; - bool IsValid() const; + + /** + * Determines whether a station exists + * @return true if and only is the station exists + */ + inline bool IsValid() const { return this->xy != 0; } }; enum StationType { diff --git a/src/town.h b/src/town.h index 6d57071464..7f196ccbf3 100644 --- a/src/town.h +++ b/src/town.h @@ -159,7 +159,7 @@ struct Town : PoolItem { /** Destroy the town */ ~Town(); - bool IsValid() const { return this->xy != 0; } + inline bool IsValid() const { return this->xy != 0; } }; struct HouseSpec { diff --git a/src/waypoint.cpp b/src/waypoint.cpp index 7383a2e9ff..52eed75ed1 100644 --- a/src/waypoint.cpp +++ b/src/waypoint.cpp @@ -418,12 +418,6 @@ Waypoint::~Waypoint() this->xy = 0; } -bool Waypoint::IsValid() const -{ - return this->xy != 0; -} - - /** * Fix savegames which stored waypoints in their old format */ diff --git a/src/waypoint.h b/src/waypoint.h index 4926d13134..46ffbc89e8 100644 --- a/src/waypoint.h +++ b/src/waypoint.h @@ -30,7 +30,7 @@ struct Waypoint : PoolItem { Waypoint(TileIndex tile = 0); ~Waypoint(); - bool IsValid() const; + inline bool IsValid() const { return this->xy != 0; } }; static inline bool IsValidWaypointID(WaypointID index)