X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5..4bc08995411e21f3564f09e136809be68ddf96a8:/lib/base/eptrlist.h diff --git a/lib/base/eptrlist.h b/lib/base/eptrlist.h index f1421eb2..3c21510d 100644 --- a/lib/base/eptrlist.h +++ b/lib/base/eptrlist.h @@ -59,16 +59,10 @@ public: inline operator bool(); inline bool operator!(); -// added methods for autodelete implementation - inline void setAutoDelete(bool b); - inline bool isAutoDelete(); - // added compare struct ... to sort struct less; private: iterator cur; - bool autoDelete; - public: iterator ePtrList::begin() { @@ -122,9 +116,6 @@ public: { // Remove the item it, if auto-deletion is enabled, than the list call delete for this item // If current is equal to the item that was removed, current is set to the next item in the list - if (autoDelete && *it) - delete *it; - if (cur == it) return cur = std::list::erase(it); else @@ -170,19 +161,19 @@ public: // Creates an vector and copys all elements to this vector // returns a pointer to this new vector ( the reserved memory must deletet from the receiver !! ) std::vector* v=new std::vector(); - v->reserve( size() ); + v->reserve( std::list::size() ); for ( std_list_T_iterator it( std::list::begin() ); it != std::list::end(); it++) v->push_back( **it ); return v; } - inline iterator insert_in_order( T* e ) - { - // added a new item to the list... in order - // returns a iterator to the new item - return insert( std::lower_bound( std::list::begin(), std::list::end(), e ), e ); - } +// inline iterator insert_in_order( T* e ) +// { +// // added a new item to the list... in order +// // returns a iterator to the new item +// return insert( std::lower_bound( std::list::begin(), std::list::end(), e ), e ); +// } }; @@ -377,7 +368,7 @@ public: /////////////////// Default Constructor ///////////////////////////// template ePtrList::ePtrList() - :cur(std::list::begin()), autoDelete(false) + :cur(std::list::begin()) { } @@ -385,34 +376,23 @@ ePtrList::ePtrList() /////////////////// Copy Constructor ///////////////////////////// template ePtrList::ePtrList(const ePtrList& e) - :std::list(e), cur(e.cur), autoDelete( false ) + :std::list(e), cur(e.cur) { - if ( e.autoDelete ) - if ( e.size() ) - eDebug("Warning !! We make a Copy of a non empty ePtrList, with autoDelete enabled" - "We disable autoDelete in the new ePtrList !!"); - else - autoDelete=true; } /////////////////// ePtrList Destructor ///////////////////////////// template inline ePtrList::~ePtrList() { -// if autoDelete is enabled, delete is called for all elements in the list - if (autoDelete) - for (std_list_T_iterator it(std::list::begin()); it != std::list::end(); it++) - delete *it; } - /////////////////// ePtrList sort() ///////////////////////// template inline void ePtrList::sort() { // Sorts all items in the list. // The type T must have a operator <. - std::list::sort(ePtrList::less()); + std::list::sort(typename ePtrList::less()); } /////////////////// ePtrList remove(T*) ///////////////////////// @@ -644,30 +624,14 @@ template ePtrList::operator bool() { // Returns a bool that contains true, when the list is NOT empty otherwise false - return !empty(); + return !std::list::empty(); } template bool ePtrList::operator!() { // Returns a bool that contains true, when the list is empty otherwise false - return empty(); -} - -template -void ePtrList::setAutoDelete(bool b) -{ -// switched autoDelete on or off -// if autoDelete is true, than the pointer list controls the heap memory behind the pointer itself -// the list calls delete for the item before it removed from the list - autoDelete=b; -} - -template -bool ePtrList::isAutoDelete() -{ -// returns a bool that contains the state of autoDelete - return autoDelete; + return std::list::empty(); } template @@ -724,16 +688,10 @@ public: inline operator bool(); inline bool operator!(); -// added methods for autodelete implementation - inline void setAutoDelete(bool b); - inline bool isAutoDelete(); - // added compare struct ... to sort struct less; private: iterator cur; - bool autoDelete; - public: iterator eSmartPtrList::begin() { @@ -787,8 +745,6 @@ public: { // Remove the item it, if auto-deletion is enabled, than the list call delete for this item // If current is equal to the item that was removed, current is set to the next item in the list - if (autoDelete && *it) - delete *it; if (cur == it) return cur = std::list >::erase(it); @@ -835,19 +791,19 @@ public: // Creates an vector and copys all elements to this vector // returns a pointer to this new vector ( the reserved memory must deletet from the receiver !! ) std::vector* v=new std::vector(); - v->reserve( size() ); + v->reserve( std::list::size() ); for ( std_list_T_iterator it( std::list >::begin() ); it != std::list >::end(); it++) v->push_back( **it ); return v; } - inline iterator insert_in_order( T* e ) - { - // added a new item to the list... in order - // returns a iterator to the new item - return insert( std::lower_bound( std::list >::begin(), std::list >::end(), e ), e ); - } +// inline iterator insert_in_order( T* e ) +// { +// // added a new item to the list... in order +// // returns a iterator to the new item +// return insert( std::lower_bound( std::list >::begin(), std::list >::end(), e ), e ); +// } }; @@ -1042,7 +998,7 @@ public: /////////////////// Default Constructor ///////////////////////////// template eSmartPtrList::eSmartPtrList() - :cur(std::list >::begin()), autoDelete(false) + :cur(std::list >::begin()) { } @@ -1050,24 +1006,14 @@ eSmartPtrList::eSmartPtrList() /////////////////// Copy Constructor ///////////////////////////// template eSmartPtrList::eSmartPtrList(const eSmartPtrList& e) - :std::list >(e), cur(e.cur), autoDelete( false ) + :std::list >(e), cur(e.cur) { - if ( e.autoDelete ) - if ( e.size() ) - eDebug("Warning !! We make a Copy of a non empty eSmartPtrList, with autoDelete enabled" - "We disable autoDelete in the new eSmartPtrList !!"); - else - autoDelete=true; } /////////////////// eSmartPtrList Destructor ///////////////////////////// template inline eSmartPtrList::~eSmartPtrList() { -// if autoDelete is enabled, delete is called for all elements in the list - if (autoDelete) - for (std_list_T_iterator it(std::list >::begin()); it != std::list >::end(); it++) - delete *it; } @@ -1309,30 +1255,14 @@ template eSmartPtrList::operator bool() { // Returns a bool that contains true, when the list is NOT empty otherwise false - return !empty(); + return !std::list::empty(); } template bool eSmartPtrList::operator!() { // Returns a bool that contains true, when the list is empty otherwise false - return empty(); -} - -template -void eSmartPtrList::setAutoDelete(bool b) -{ -// switched autoDelete on or off -// if autoDelete is true, than the pointer list controls the heap memory behind the pointer itself -// the list calls delete for the item before it removed from the list - autoDelete=b; -} - -template -bool eSmartPtrList::isAutoDelete() -{ -// returns a bool that contains the state of autoDelete - return autoDelete; + return std::list::empty(); } #endif // _E_PTRLIST