Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=08d740a5c75ad43e3c2e442b473e7cd6af6357bd
commit 08d740a5c75ad43e3c2e442b473e7cd6af6357bd Author: Michel Hermier <[email protected]> Date: Mon Sep 8 16:44:45 2014 +0200 libpacman: Drop f_ptrlistitem_insert_after for FCPtrList::insert_after. diff --git a/lib/libpacman/util/flist.h b/lib/libpacman/util/flist.h index 601d3be..d4923a2 100644 --- a/lib/libpacman/util/flist.h +++ b/lib/libpacman/util/flist.h @@ -56,7 +56,6 @@ FPtrList *_pacman_list_reverse(FPtrList *list); typedef void (*FPtrListIteratorVisitorFunc)(FPtrListIterator *item, void *visitor_data); void *f_ptrlistitem_data(const FPtrListIterator *self); -int f_ptrlistitem_insert_after(FPtrListIterator *self, FPtrListIterator *previous); FPtrListIterator *f_ptrlistitem_next(FPtrListIterator *self); size_t f_ptrlistiterator_count(const FPtrListIterator *self, const FPtrListIterator *to); @@ -380,7 +379,6 @@ public: friend FPtrList *f_ptrlist_add_sorted(FPtrList *list, void *data, _pacman_fn_cmp fn); friend bool _pacman_list_remove(FPtrList *haystack, void *needle, _pacman_fn_cmp fn, void **data); friend FPtrList *f_ptrlist_add(FPtrList *list, void *data); - friend int f_ptrlistitem_insert_after(FPtrListIterator *self, FPtrListIterator *previous); friend class FPtrList; typedef void *value_type; @@ -424,8 +422,22 @@ public: } #endif -//protected: // Disable for now - bool insert_after(FCListItem *previous); + bool insert_after(FCListItem *previous) + { + FCListItem *next; + + ASSERT(previous != NULL, RET_ERR(PM_ERR_WRONG_ARGS, false)); + + next = previous->m_next; + previous->m_next = this; + m_next = next; + m_previous = previous; +#ifndef F_NOCOMPAT + if (next != NULL) +#endif + next->m_previous = this; + return true; + } protected: FCListItem *m_next; diff --git a/lib/libpacman/util/fptrlist.cpp b/lib/libpacman/util/fptrlist.cpp index f471d2b..88f14bf 100644 --- a/lib/libpacman/util/fptrlist.cpp +++ b/lib/libpacman/util/fptrlist.cpp @@ -41,11 +41,10 @@ FPtrList *f_ptrlist_add_sorted(FPtrList *list, void *data, _pacman_fn_cmp fn) /* Insert before in head */ FPtrListItem *next = new FPtrListItem(list->m_data); list->m_data = data; - f_ptrlistitem_insert_after(next, list); + next->insert_after(list); } else { #endif - FPtrListIterator *add = new FPtrListItem(); - add->m_data = data; + FPtrListIterator *add = new FPtrListItem(data); /* Find insertion point. */ FPtrListIterator *previous = list; @@ -56,7 +55,7 @@ FPtrList *f_ptrlist_add_sorted(FPtrList *list, void *data, _pacman_fn_cmp fn) } /* Insert node before insertion point. */ - f_ptrlistitem_insert_after(add, previous); + add->insert_after(previous); #ifndef F_NOCOMPAT } #endif @@ -148,24 +147,6 @@ void *f_ptrlistitem_data(const FPtrListIterator *self) return self->m_data; } -int f_ptrlistitem_insert_after(FPtrListIterator *self, FPtrListIterator *previous) -{ - FPtrListIterator *next; - - ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - ASSERT(previous != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - - next = previous->m_next; - previous->m_next = self; - self->m_next = next; - self->m_previous = previous; -#ifndef F_NOCOMPAT - if (next != NULL) -#endif - next->m_previous = self; - return 0; -} - FPtrListIterator *f_ptrlistitem_next(FPtrListIterator *self) { ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL)); @@ -204,17 +185,10 @@ FPtrList &FPtrList::add(void *data) m_data = (void *)data; } else { #endif - FPtrListIterator *lp = last(); - f_ptrlistitem_insert_after(new FPtrListItem(), lp); - lp = lp->m_next; - lp->m_data = data; + (new FPtrListItem(data))->insert_after(last()); #ifndef F_NOCOMPAT } #endif - -#if 0 - f_ptrlistitem_insert_after(new FPtrListItem(data), last()); -#endif return *this; } _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
