Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(291)

Unified Diff: nss/lib/base/list.c

Issue 1843333003: Update NSPR to 4.12 and NSS to 3.23 on iOS (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/nss.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: nss/lib/base/list.c
diff --git a/nss/lib/base/list.c b/nss/lib/base/list.c
index 5f34923b2054b6e2647aaef866ccd4ef57e7efbd..0173b853b2bfc7979817f0bbaa25464e41c4e3a6 100644
--- a/nss/lib/base/list.c
+++ b/nss/lib/base/list.c
@@ -13,19 +13,19 @@
#endif /* BASE_H */
struct nssListElementStr {
- PRCList link;
- void *data;
+ PRCList link;
+ void *data;
};
typedef struct nssListElementStr nssListElement;
struct nssListStr {
- NSSArena *arena;
- PZLock *lock;
+ NSSArena *arena;
+ PZLock *lock;
nssListElement *head;
- PRUint32 count;
+ PRUint32 count;
nssListCompareFunc compareFunc;
- nssListSortFunc sortFunc;
+ nssListSortFunc sortFunc;
PRBool i_alloced_arena;
};
@@ -35,11 +35,13 @@ struct nssListIteratorStr {
nssListElement *current;
};
-#define NSSLIST_LOCK_IF(list) \
- if ((list)->lock) PZ_Lock((list)->lock)
+#define NSSLIST_LOCK_IF(list) \
+ if ((list)->lock) \
+ PZ_Lock((list)->lock)
-#define NSSLIST_UNLOCK_IF(list) \
- if ((list)->lock) PZ_Unlock((list)->lock)
+#define NSSLIST_UNLOCK_IF(list) \
+ if ((list)->lock) \
+ PZ_Unlock((list)->lock)
static PRBool
pointer_compare(void *a, void *b)
@@ -54,61 +56,57 @@ nsslist_get_matching_element(nssList *list, void *data)
nssListElement *node;
node = list->head;
if (!node) {
- return NULL;
+ return NULL;
}
link = &node->link;
while (node) {
- /* using a callback slows things down when it's just compare ... */
- if (list->compareFunc(node->data, data)) {
- break;
- }
- link = &node->link;
- if (link == PR_LIST_TAIL(&list->head->link)) {
- node = NULL;
- break;
- }
- node = (nssListElement *)PR_NEXT_LINK(&node->link);
+ /* using a callback slows things down when it's just compare ... */
+ if (list->compareFunc(node->data, data)) {
+ break;
+ }
+ link = &node->link;
+ if (link == PR_LIST_TAIL(&list->head->link)) {
+ node = NULL;
+ break;
+ }
+ node = (nssListElement *)PR_NEXT_LINK(&node->link);
}
return node;
}
NSS_IMPLEMENT nssList *
-nssList_Create
-(
- NSSArena *arenaOpt,
- PRBool threadSafe
-)
+nssList_Create(NSSArena *arenaOpt, PRBool threadSafe)
{
NSSArena *arena;
nssList *list;
PRBool i_alloced;
if (arenaOpt) {
- arena = arenaOpt;
- i_alloced = PR_FALSE;
+ arena = arenaOpt;
+ i_alloced = PR_FALSE;
} else {
- arena = nssArena_Create();
- i_alloced = PR_TRUE;
+ arena = nssArena_Create();
+ i_alloced = PR_TRUE;
}
if (!arena) {
- return (nssList *)NULL;
+ return (nssList *)NULL;
}
list = nss_ZNEW(arena, nssList);
if (!list) {
- if (!arenaOpt) {
- NSSArena_Destroy(arena);
- }
- return (nssList *)NULL;
+ if (!arenaOpt) {
+ NSSArena_Destroy(arena);
+ }
+ return (nssList *)NULL;
}
if (threadSafe) {
- list->lock = PZ_NewLock(nssILockOther);
- if (!list->lock) {
- if (arenaOpt) {
- nss_ZFreeIf(list);
- } else {
- NSSArena_Destroy(arena);
- }
- return (nssList *)NULL;
- }
+ list->lock = PZ_NewLock(nssILockOther);
+ if (!list->lock) {
+ if (arenaOpt) {
+ nss_ZFreeIf(list);
+ } else {
+ NSSArena_Destroy(arena);
+ }
+ return (nssList *)NULL;
+ }
}
list->arena = arena;
list->i_alloced_arena = i_alloced;
@@ -120,14 +118,14 @@ NSS_IMPLEMENT PRStatus
nssList_Destroy(nssList *list)
{
if (!list->i_alloced_arena) {
- nssList_Clear(list, NULL);
+ nssList_Clear(list, NULL);
}
if (list->lock) {
- (void)PZ_DestroyLock(list->lock);
+ (void)PZ_DestroyLock(list->lock);
}
if (list->i_alloced_arena) {
- NSSArena_Destroy(list->arena);
- list = NULL;
+ NSSArena_Destroy(list->arena);
+ list = NULL;
}
nss_ZFreeIf(list);
return PR_SUCCESS;
@@ -161,13 +159,14 @@ nssList_Clear(nssList *list, nssListElementDestructorFunc destructor)
node = list->head;
list->head = NULL;
while (node && list->count > 0) {
- if (destructor) (*destructor)(node->data);
- link = &node->link;
- tmp = (nssListElement *)PR_NEXT_LINK(link);
- PR_REMOVE_LINK(link);
- nss_ZFreeIf(node);
- node = tmp;
- --list->count;
+ if (destructor)
+ (*destructor)(node->data);
+ link = &node->link;
+ tmp = (nssListElement *)PR_NEXT_LINK(link);
+ PR_REMOVE_LINK(link);
+ nss_ZFreeIf(node);
+ node = tmp;
+ --list->count;
}
NSSLIST_UNLOCK_IF(list);
}
@@ -177,38 +176,39 @@ nsslist_add_element(nssList *list, void *data)
{
nssListElement *node = nss_ZNEW(list->arena, nssListElement);
if (!node) {
- return PR_FAILURE;
+ return PR_FAILURE;
}
PR_INIT_CLIST(&node->link);
node->data = data;
if (list->head) {
- if (list->sortFunc) {
- PRCList *link;
- nssListElement *currNode;
- currNode = list->head;
- /* insert in ordered list */
- while (currNode) {
- link = &currNode->link;
- if (list->sortFunc(data, currNode->data) <= 0) {
- /* new element goes before current node */
- PR_INSERT_BEFORE(&node->link, link);
- /* reset head if this is first */
- if (currNode == list->head) list->head = node;
- break;
- }
- if (link == PR_LIST_TAIL(&list->head->link)) {
- /* reached end of list, append */
- PR_INSERT_AFTER(&node->link, link);
- break;
- }
- currNode = (nssListElement *)PR_NEXT_LINK(&currNode->link);
- }
- } else {
- /* not sorting */
- PR_APPEND_LINK(&node->link, &list->head->link);
- }
+ if (list->sortFunc) {
+ PRCList *link;
+ nssListElement *currNode;
+ currNode = list->head;
+ /* insert in ordered list */
+ while (currNode) {
+ link = &currNode->link;
+ if (list->sortFunc(data, currNode->data) <= 0) {
+ /* new element goes before current node */
+ PR_INSERT_BEFORE(&node->link, link);
+ /* reset head if this is first */
+ if (currNode == list->head)
+ list->head = node;
+ break;
+ }
+ if (link == PR_LIST_TAIL(&list->head->link)) {
+ /* reached end of list, append */
+ PR_INSERT_AFTER(&node->link, link);
+ break;
+ }
+ currNode = (nssListElement *)PR_NEXT_LINK(&currNode->link);
+ }
+ } else {
+ /* not sorting */
+ PR_APPEND_LINK(&node->link, &list->head->link);
+ }
} else {
- list->head = node;
+ list->head = node;
}
++list->count;
return PR_SUCCESS;
@@ -231,9 +231,9 @@ nssList_AddUnique(nssList *list, void *data)
NSSLIST_LOCK_IF(list);
node = nsslist_get_matching_element(list, data);
if (node) {
- /* already in, finish */
- NSSLIST_UNLOCK_IF(list);
- return PR_SUCCESS;
+ /* already in, finish */
+ NSSLIST_UNLOCK_IF(list);
+ return PR_SUCCESS;
}
nssrv = nsslist_add_element(list, data);
NSSLIST_UNLOCK_IF(list);
@@ -247,14 +247,14 @@ nssList_Remove(nssList *list, void *data)
NSSLIST_LOCK_IF(list);
node = nsslist_get_matching_element(list, data);
if (node) {
- if (node == list->head) {
- list->head = (nssListElement *)PR_NEXT_LINK(&node->link);
- }
- PR_REMOVE_LINK(&node->link);
- nss_ZFreeIf(node);
- if (--list->count == 0) {
- list->head = NULL;
- }
+ if (node == list->head) {
+ list->head = (nssListElement *)PR_NEXT_LINK(&node->link);
+ }
+ PR_REMOVE_LINK(&node->link);
+ nss_ZFreeIf(node);
+ if (--list->count == 0) {
+ list->head = NULL;
+ }
}
NSSLIST_UNLOCK_IF(list);
return PR_SUCCESS;
@@ -284,16 +284,17 @@ nssList_GetArray(nssList *list, void **rvArray, PRUint32 maxElements)
PR_ASSERT(maxElements > 0);
node = list->head;
if (!node) {
- return PR_SUCCESS;
+ return PR_SUCCESS;
}
NSSLIST_LOCK_IF(list);
while (node) {
- rvArray[i++] = node->data;
- if (i == maxElements) break;
- node = (nssListElement *)PR_NEXT_LINK(&node->link);
- if (node == list->head) {
- break;
- }
+ rvArray[i++] = node->data;
+ if (i == maxElements)
+ break;
+ node = (nssListElement *)PR_NEXT_LINK(&node->link);
+ if (node == list->head) {
+ break;
+ }
}
NSSLIST_UNLOCK_IF(list);
return PR_SUCCESS;
@@ -306,18 +307,18 @@ nssList_Clone(nssList *list)
nssListElement *node;
rvList = nssList_Create(NULL, (list->lock != NULL));
if (!rvList) {
- return NULL;
+ return NULL;
}
NSSLIST_LOCK_IF(list);
if (list->count > 0) {
- node = list->head;
- while (PR_TRUE) {
- nssList_Add(rvList, node->data);
- node = (nssListElement *)PR_NEXT_LINK(&node->link);
- if (node == list->head) {
- break;
- }
- }
+ node = list->head;
+ while (PR_TRUE) {
+ nssList_Add(rvList, node->data);
+ node = (nssListElement *)PR_NEXT_LINK(&node->link);
+ if (node == list->head) {
+ break;
+ }
+ }
}
NSSLIST_UNLOCK_IF(list);
return rvList;
@@ -329,21 +330,21 @@ nssList_CreateIterator(nssList *list)
nssListIterator *rvIterator;
rvIterator = nss_ZNEW(NULL, nssListIterator);
if (!rvIterator) {
- return NULL;
+ return NULL;
}
rvIterator->list = nssList_Clone(list);
if (!rvIterator->list) {
- nss_ZFreeIf(rvIterator);
- return NULL;
+ nss_ZFreeIf(rvIterator);
+ return NULL;
}
rvIterator->current = rvIterator->list->head;
if (list->lock) {
- rvIterator->lock = PZ_NewLock(nssILockOther);
- if (!rvIterator->lock) {
- nssList_Destroy(rvIterator->list);
- nss_ZFreeIf(rvIterator);
- rvIterator = NULL;
- }
+ rvIterator->lock = PZ_NewLock(nssILockOther);
+ if (!rvIterator->lock) {
+ nssList_Destroy(rvIterator->list);
+ nss_ZFreeIf(rvIterator);
+ rvIterator = NULL;
+ }
}
return rvIterator;
}
@@ -352,7 +353,7 @@ NSS_IMPLEMENT void
nssListIterator_Destroy(nssListIterator *iter)
{
if (iter->lock) {
- (void)PZ_DestroyLock(iter->lock);
+ (void)PZ_DestroyLock(iter->lock);
}
nssList_Destroy(iter->list);
nss_ZFreeIf(iter);
@@ -363,7 +364,7 @@ nssListIterator_Start(nssListIterator *iter)
{
NSSLIST_LOCK_IF(iter);
if (iter->list->count == 0) {
- return NULL;
+ return NULL;
}
iter->current = iter->list->head;
return iter->current->data;
@@ -375,17 +376,17 @@ nssListIterator_Next(nssListIterator *iter)
nssListElement *node;
PRCList *link;
if (iter->list->count == 1 || iter->current == NULL) {
- /* Reached the end of the list. Don't change the state, force to
- * user to call nssList_Finish to clean up.
- */
- return NULL;
+ /* Reached the end of the list. Don't change the state, force to
+ * user to call nssList_Finish to clean up.
+ */
+ return NULL;
}
node = (nssListElement *)PR_NEXT_LINK(&iter->current->link);
link = &node->link;
if (link == PR_LIST_TAIL(&iter->list->head->link)) {
- /* Signal the end of the list. */
- iter->current = NULL;
- return node->data;
+ /* Signal the end of the list. */
+ iter->current = NULL;
+ return node->data;
}
iter->current = node;
return node->data;
@@ -397,4 +398,3 @@ nssListIterator_Finish(nssListIterator *iter)
iter->current = iter->list->head;
return (iter->lock) ? PZ_Unlock(iter->lock) : PR_SUCCESS;
}
-
« no previous file with comments | « nss/lib/base/libc.c ('k') | nss/lib/base/nssbase.h » ('j') | nss/lib/util/secoid.c » ('J')

Powered by Google App Engine
This is Rietveld 408576698