summaryrefslogtreecommitdiff
path: root/src/oldpool.h
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-04-23 20:56:08 +0000
committerrubidium <rubidium@openttd.org>2008-04-23 20:56:08 +0000
commit6939569362a8c3e2c1b5174962309d0d73152845 (patch)
treea6906b106143841dcbc6aea392d11baa75492e05 /src/oldpool.h
parent1ba6e3deebf4c26896491842df51dc26f29a1c5d (diff)
downloadopenttd-6939569362a8c3e2c1b5174962309d0d73152845.tar.xz
(svn r12855) -Codechange: do not use autoptr's for testing whether certain objects can be build, but check it directly in the pool so we do not have to call destructors in the testing phase. Stations still use the autoptr though.
Diffstat (limited to 'src/oldpool.h')
-rw-r--r--src/oldpool.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/oldpool.h b/src/oldpool.h
index 46d31e999..e8081fa82 100644
--- a/src/oldpool.h
+++ b/src/oldpool.h
@@ -292,6 +292,18 @@ protected:
{
return Tpool->CleaningPool();
}
+
+public:
+ /**
+ * Check whether we can allocate an item in this pool. This to prevent the
+ * need to actually construct the object and then destructing it again,
+ * which could be *very* costly.
+ * @return true if and only if at least ONE item can be allocated.
+ */
+ static inline bool CanAllocateItem()
+ {
+ return AllocateRaw() != NULL;
+ }
};