From 61bf6b061af46923d0fe09ebb970ccfdf8b34e40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Mon, 19 Mar 2018 22:17:24 -0700 Subject: [PATCH] Removed use of std::list. Issue #1270. --- src/bgfx_p.h | 48 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/bgfx_p.h b/src/bgfx_p.h index 72d3cb339..6db0823a2 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -144,8 +144,6 @@ namespace bgfx | BGFX_CLEAR_COLOR_USE_PALETTE \ ) -#include // mingw wants it to be before tr1/unordered_*... - #if BGFX_CONFIG_USE_TINYSTL namespace bgfx { @@ -160,8 +158,52 @@ namespace bgfx # include # include # include + +namespace tinystl +{ + template + class list : public vector + { + public: + void push_front(const T& _value); + void pop_front(); + + void sort(); + + private: + vector m_vector; + }; + + template + inline void list::push_front(const T& _value) + { + this->insert(this->begin(), _value); + } + + template + inline void list::pop_front() + { + this->erase(this->begin() ); + } + + template + inline void list::sort() + { + bx::quickSort( + this->begin() + , uint32_t(this->end() - this->begin() ) + , sizeof(T) + , [](const void* _a, const void* _b) -> int32_t { + const T& lhs = *(const T*)(_a); + const T& rhs = *(const T*)(_b); + return lhs < rhs; + }); + } +} // namespace tinystl + namespace stl = tinystl; #else +# include # include # include # include @@ -2546,7 +2588,7 @@ namespace bgfx uint32_t m_size; }; - typedef std::list FreeList; + typedef stl::list FreeList; FreeList m_free; typedef stl::unordered_map UsedList;