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