bullet3/examples/ThirdPartyLibs/enet/list.c
erwincoumans ab8f16961e Code-style consistency improvement:
Apply clang-format-all.sh using the _clang-format file through all the cpp/.h files.
make sure not to apply it to certain serialization structures, since some parser expects the * as part of the name, instead of type.
This commit contains no other changes aside from adding and applying clang-format-all.sh
2018-09-23 14:17:31 -07:00

74 lines
1.4 KiB
C

/**
@file list.c
@brief ENet linked list functions
*/
#define ENET_BUILDING_LIB 1
#include "enet/enet.h"
/**
@defgroup list ENet linked list utility functions
@ingroup private
@{
*/
void enet_list_clear(ENetList* list)
{
list->sentinel.next = &list->sentinel;
list->sentinel.previous = &list->sentinel;
}
ENetListIterator
enet_list_insert(ENetListIterator position, void* data)
{
ENetListIterator result = (ENetListIterator)data;
result->previous = position->previous;
result->next = position;
result->previous->next = result;
position->previous = result;
return result;
}
void* enet_list_remove(ENetListIterator position)
{
position->previous->next = position->next;
position->next->previous = position->previous;
return position;
}
ENetListIterator
enet_list_move(ENetListIterator position, void* dataFirst, void* dataLast)
{
ENetListIterator first = (ENetListIterator)dataFirst,
last = (ENetListIterator)dataLast;
first->previous->next = last->next;
last->next->previous = first->previous;
first->previous = position->previous;
last->next = position;
first->previous->next = first;
position->previous = last;
return first;
}
size_t
enet_list_size(ENetList* list)
{
size_t size = 0;
ENetListIterator position;
for (position = enet_list_begin(list);
position != enet_list_end(list);
position = enet_list_next(position))
++size;
return size;
}
/** @} */