mirror of https://github.com/PCSX2/pcsx2.git
utilities: Remove ScopedArray implementation
It's now unused.
This commit is contained in:
parent
e7ca031d1e
commit
3c7e45ccc8
|
@ -140,121 +140,6 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------
|
|
||||||
// ScopedArray - same as ScopedPtr but uses delete[], and has operator[]
|
|
||||||
// --------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
template< typename T >
|
|
||||||
class ScopedArray
|
|
||||||
{
|
|
||||||
DeclareNoncopyableObject(ScopedArray);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
T* m_array;
|
|
||||||
uint m_valid_range;
|
|
||||||
|
|
||||||
public:
|
|
||||||
typedef T element_type;
|
|
||||||
|
|
||||||
wxEXPLICIT ScopedArray(T * ptr = NULL)
|
|
||||||
{
|
|
||||||
m_array = ptr;
|
|
||||||
m_valid_range = 0xffffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxEXPLICIT ScopedArray( size_t size )
|
|
||||||
{
|
|
||||||
m_array = new T[size];
|
|
||||||
m_valid_range = size;
|
|
||||||
}
|
|
||||||
|
|
||||||
~ScopedArray() throw()
|
|
||||||
{ Delete(); }
|
|
||||||
|
|
||||||
ScopedArray& Reassign(T * ptr = NULL)
|
|
||||||
{
|
|
||||||
if( ptr != m_array )
|
|
||||||
{
|
|
||||||
Delete();
|
|
||||||
m_array = ptr;
|
|
||||||
m_valid_range = 0xffffffff;
|
|
||||||
}
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ScopedArray& Delete() throw()
|
|
||||||
{
|
|
||||||
// Thread-safe deletion: Set the pointer to NULL first, and then issue
|
|
||||||
// the deletion. This allows pending Application messages that might be
|
|
||||||
// dependent on the current object to nullify their actions.
|
|
||||||
|
|
||||||
T* deleteme = m_array;
|
|
||||||
m_array = NULL;
|
|
||||||
delete[] deleteme;
|
|
||||||
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Removes the pointer from scoped management, but does not delete!
|
|
||||||
T *DetachPtr()
|
|
||||||
{
|
|
||||||
T *ptr = m_array;
|
|
||||||
m_array = NULL;
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns the managed pointer. Can return NULL as a valid result if the ScopedPtr
|
|
||||||
// has no object in management.
|
|
||||||
T* GetPtr() const
|
|
||||||
{
|
|
||||||
return m_array;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SwapPtr(ScopedArray& other)
|
|
||||||
{
|
|
||||||
T * const tmp = other.m_array;
|
|
||||||
other.m_array = m_array;
|
|
||||||
m_array = tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// ScopedPtr Operators
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// I've decided to use the ATL's approach to pointer validity tests, opposed to
|
|
||||||
// the wx/boost approach (which uses some bizarre member method pointer crap, and can't
|
|
||||||
// allow the T* implicit casting.
|
|
||||||
|
|
||||||
bool operator!() const throw()
|
|
||||||
{
|
|
||||||
return m_array == NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Equality
|
|
||||||
bool operator==(T* pT) const throw()
|
|
||||||
{
|
|
||||||
return m_array == pT;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Inequality
|
|
||||||
bool operator!=(T* pT) const throw()
|
|
||||||
{
|
|
||||||
return !operator==(pT);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Convenient assignment operator. ScopedPtr = NULL will issue an automatic deletion
|
|
||||||
// of the managed pointer.
|
|
||||||
ScopedArray& operator=( T* src )
|
|
||||||
{
|
|
||||||
return Reassign( src );
|
|
||||||
}
|
|
||||||
|
|
||||||
T& operator[]( uint idx ) const
|
|
||||||
{
|
|
||||||
pxAssertDev( idx < m_valid_range, "Array index out of bounds on ScopedArray." );
|
|
||||||
return m_array[idx];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------
|
||||||
// pxObjPtr -- fancified version of wxScopedPtr
|
// pxObjPtr -- fancified version of wxScopedPtr
|
||||||
// --------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue