summaryrefslogtreecommitdiff
path: root/src/core/alloc_func.hpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-04-13 19:25:14 +0000
committerrubidium <rubidium@openttd.org>2008-04-13 19:25:14 +0000
commit9a73b698d4045fcf19a46193cecde62bb9626bae (patch)
tree62fb23e679baa7d7fef852eba8960e2a582d1f52 /src/core/alloc_func.hpp
parent04138ddffca9a2614849e5040501c2e4ee0311fd (diff)
downloadopenttd-9a73b698d4045fcf19a46193cecde62bb9626bae.tar.xz
(svn r12695) -Codechange: only allocate window structs when needed. Based on a patch by Alberth.
Diffstat (limited to 'src/core/alloc_func.hpp')
-rw-r--r--src/core/alloc_func.hpp52
1 files changed, 0 insertions, 52 deletions
diff --git a/src/core/alloc_func.hpp b/src/core/alloc_func.hpp
index 57a5fc3d4..2a31f8637 100644
--- a/src/core/alloc_func.hpp
+++ b/src/core/alloc_func.hpp
@@ -90,56 +90,4 @@ template <typename T> FORCEINLINE T* ReallocT(T *t_ptr, size_t num_elements)
return t_ptr;
}
-/**
- * A small 'wrapper' for allocations that can be done on most OSes on the
- * stack, but are just too large to fit in the stack on devices with a small
- * stack such as the NDS.
- * So when it is possible a stack allocation is made, otherwise a heap
- * allocation is made and this is freed once the struct goes out of scope.
- * @param T the type to make the allocation for
- * @param length the amount of items to allocate
- */
-template <typename T, size_t length>
-struct SmallStackSafeStackAlloc {
-#if !defined(__NDS__)
- /** Storing the data on the stack */
- T data[length];
-#else
- /** Storing it on the heap */
- T *data;
- /** The length (in elements) of data in this allocator. */
- size_t len;
-
- /** Allocating the memory */
- SmallStackSafeStackAlloc() : data(MallocT<T>(length)), len(length) {}
- /** And freeing when it goes out of scope */
- ~SmallStackSafeStackAlloc() { free(data); }
-#endif
-
- /**
- * Gets a pointer to the data stored in this wrapper.
- * @return the pointer.
- */
- inline operator T* () { return data; }
-
- /**
- * Gets a pointer to the data stored in this wrapper.
- * @return the pointer.
- */
- inline T* operator -> () { return data; }
-
- /**
- * Gets a pointer to the last data element stored in this wrapper.
- * @note needed because endof does not work properly for pointers.
- * @return the 'endof' pointer.
- */
- inline T* EndOf() {
-#if !defined(__NDS__)
- return endof(data);
-#else
- return &data[len];
-#endif
- }
-};
-
#endif /* ALLOC_FUNC_HPP */