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:
parent
fc057401a4
commit
14ca2198dd
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user