1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Force inline simple Vector ops.

This commit is contained in:
Bartosz Taudul 2018-05-02 18:27:37 +02:00
parent fc057401a4
commit 14ca2198dd

View File

@ -51,59 +51,59 @@ public:
return *this; return *this;
} }
bool empty() const { return m_size == 0; } tracy_force_inline bool empty() const { return m_size == 0; }
size_t size() const { return m_size; } tracy_force_inline size_t size() const { return m_size; }
void set_size( size_t sz ) { m_size = sz; } tracy_force_inline void set_size( size_t sz ) { m_size = sz; }
T* data() { return m_ptr; } tracy_force_inline T* data() { return m_ptr; }
const T* data() const { return m_ptr; }; tracy_force_inline const T* data() const { return m_ptr; };
T* begin() { return m_ptr; } tracy_force_inline T* begin() { return m_ptr; }
const T* begin() const { return m_ptr; } tracy_force_inline const T* begin() const { return m_ptr; }
T* end() { return m_ptr + m_size; } tracy_force_inline T* end() { return m_ptr + m_size; }
const T* end() const { return m_ptr + m_size; } tracy_force_inline const T* end() const { return m_ptr + m_size; }
T& front() { assert( m_size > 0 ); return m_ptr[0]; } tracy_force_inline T& front() { assert( m_size > 0 ); return m_ptr[0]; }
const T& front() const { assert( m_size > 0 ); return m_ptr[0]; } tracy_force_inline const T& front() const { assert( m_size > 0 ); return m_ptr[0]; }
T& back() { assert( m_size > 0 ); return m_ptr[m_size - 1]; } tracy_force_inline T& back() { assert( m_size > 0 ); return m_ptr[m_size - 1]; }
const T& back() const { assert( m_size > 0 ); return m_ptr[m_size - 1]; } tracy_force_inline const T& back() const { assert( m_size > 0 ); return m_ptr[m_size - 1]; }
T& operator[]( size_t idx ) { return m_ptr[idx]; } tracy_force_inline T& operator[]( size_t idx ) { return m_ptr[idx]; }
const T& operator[]( size_t idx ) const { return m_ptr[idx]; } tracy_force_inline const T& operator[]( size_t idx ) const { return m_ptr[idx]; }
void push_back( const T& v ) tracy_force_inline void push_back( const T& v )
{ {
if( m_size == Capacity() ) AllocMore(); if( m_size == Capacity() ) AllocMore();
m_ptr[m_size++] = v; m_ptr[m_size++] = v;
} }
void push_back_non_empty( const T& v ) tracy_force_inline void push_back_non_empty( const T& v )
{ {
if( m_size == CapacityNoNullptrCheck() ) AllocMore(); if( m_size == CapacityNoNullptrCheck() ) AllocMore();
m_ptr[m_size++] = v; m_ptr[m_size++] = v;
} }
void push_back_no_space_check( const T& v ) tracy_force_inline void push_back_no_space_check( const T& v )
{ {
assert( m_size < Capacity() ); assert( m_size < Capacity() );
m_ptr[m_size++] = v; m_ptr[m_size++] = v;
} }
void push_back( T&& v ) tracy_force_inline void push_back( T&& v )
{ {
if( m_size == Capacity() ) AllocMore(); if( m_size == Capacity() ) AllocMore();
m_ptr[m_size++] = std::move( v ); m_ptr[m_size++] = std::move( v );
} }
T& push_next() tracy_force_inline T& push_next()
{ {
if( m_size == Capacity() ) AllocMore(); if( m_size == Capacity() ) AllocMore();
return m_ptr[m_size++]; return m_ptr[m_size++];
} }
T& push_next_no_space_check() tracy_force_inline T& push_next_no_space_check()
{ {
assert( m_size < Capacity() ); assert( m_size < Capacity() );
return m_ptr[m_size++]; return m_ptr[m_size++];
@ -165,20 +165,20 @@ public:
return begin; return begin;
} }
void pop_back() tracy_force_inline void pop_back()
{ {
assert( m_size > 0 ); assert( m_size > 0 );
m_size--; m_size--;
} }
T& back_and_pop() tracy_force_inline T& back_and_pop()
{ {
assert( m_size > 0 ); assert( m_size > 0 );
m_size--; m_size--;
return m_ptr[m_size]; return m_ptr[m_size];
} }
void reserve( size_t cap ) tracy_force_inline void reserve( size_t cap )
{ {
if( cap == 0 || cap <= Capacity() ) return; if( cap == 0 || cap <= Capacity() ) return;
reserve_non_zero( cap ); reserve_non_zero( cap );
@ -198,13 +198,13 @@ public:
Realloc(); Realloc();
} }
void reserve_and_use( size_t sz ) tracy_force_inline void reserve_and_use( size_t sz )
{ {
reserve( sz ); reserve( sz );
m_size = sz; m_size = sz;
} }
void clear() tracy_force_inline void clear()
{ {
m_size = 0; m_size = 0;
} }
@ -237,12 +237,12 @@ private:
m_ptr = ptr; m_ptr = ptr;
} }
uint32_t Capacity() const tracy_force_inline uint32_t Capacity() const
{ {
return m_ptr == nullptr ? 0 : 1 << m_capacity; return m_ptr == nullptr ? 0 : 1 << m_capacity;
} }
uint32_t CapacityNoNullptrCheck() const tracy_force_inline uint32_t CapacityNoNullptrCheck() const
{ {
return 1 << m_capacity; return 1 << m_capacity;
} }