diff options
author | frosch <frosch@openttd.org> | 2010-01-16 14:12:18 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2010-01-16 14:12:18 +0000 |
commit | e6faf06b687d0d98da2d3bb3a7f294bc701dae38 (patch) | |
tree | 5660f9be2961628dd65c9f142a4717f3739c5d4d /src/misc/array.hpp | |
parent | 085e9251c5b2ca1d6300a46cf88e7d99207bbeb0 (diff) | |
download | openttd-e6faf06b687d0d98da2d3bb3a7f294bc701dae38.tar.xz |
(svn r18824) -Codechange: Turn some public members into protected ones. (skidd13)
Diffstat (limited to 'src/misc/array.hpp')
-rw-r--r-- | src/misc/array.hpp | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/misc/array.hpp b/src/misc/array.hpp index 414d3efe0..e4cf19408 100644 --- a/src/misc/array.hpp +++ b/src/misc/array.hpp @@ -19,16 +19,26 @@ * array of fixed size arrays */ template <class T, uint B = 1024, uint N = B> class SmallArray { -public: +protected: typedef FixedSizeArray<T, B> SubArray; ///< inner array typedef FixedSizeArray<SubArray, N> SuperArray; ///< outer array -protected: + static const uint Tcapacity = B * N; ///< total max number of items + SuperArray data; ///< array of arrays of items -public: - static const uint Tcapacity = B * N; ///< total max number of items + /** return first sub-array with free space for new item */ + FORCEINLINE SubArray& FirstFreeSubArray() + { + uint super_size = data.Length(); + if (super_size > 0) { + SubArray& s = data[super_size - 1]; + if (!s.IsFull()) return s; + } + return data.AppendC(); + } +public: /** implicit constructor */ FORCEINLINE SmallArray() { } /** Clear (destroy) all items */ @@ -45,16 +55,6 @@ public: FORCEINLINE bool IsEmpty() { return data.IsEmpty(); } /** return true if array is full */ FORCEINLINE bool IsFull() { return data.IsFull() && data[N - 1].IsFull(); } - /** return first sub-array with free space for new item */ - FORCEINLINE SubArray& FirstFreeSubArray() - { - uint super_size = data.Length(); - if (super_size > 0) { - SubArray& s = data[super_size - 1]; - if (!s.IsFull()) return s; - } - return data.AppendC(); - } /** allocate but not construct new item */ FORCEINLINE T& Append() { return FirstFreeSubArray().Append(); } /** allocate and construct new item */ |