56 lnode *ptr =
static_cast<lnode *
>(std::malloc(
sizeof(lnode)));
57 assert(ptr !=
nullptr);
67 lnode **flink, *
blink;
69 if (pThis->
tail !=
nullptr) {
70 flink = &(pThis->
tail->next);
91 list pThis =
static_cast<list>(std::malloc(
sizeof(
struct list_)));
92 assert(pThis !=
nullptr);
95 pThis->
eDtor =
nullptr;
103 assert(pThis !=
nullptr);
110 assert(pThis !=
nullptr);
117 assert(pThis !=
nullptr);
118 assert(pThis->
cptr !=
nullptr);
119 return pThis->
cptr->value;
124 assert(pThis !=
nullptr);
130 assert(pThis !=
nullptr);
131 return pThis->
aCount == 0;
142 assert(pThis !=
nullptr);
144 if (pThis->
cptr ==
nullptr)
return 0;
147 if (pThis->
cptr->next ==
nullptr)
break;
157 assert(pThis !=
nullptr);
168 assert(pThis !=
nullptr);
179 assert(pThis !=
nullptr);
187 lnode *ptr =
nullptr;
188 if (pThis->
cptr ==
nullptr)
return pThis;
190 if (pThis->
cptr->next !=
nullptr) {
191 ptr = pThis->
cptr->next;
192 pThis->
cptr->next->prev = pThis->
cptr->prev;
197 if (pThis->
cptr->prev !=
nullptr) {
198 if (ptr ==
nullptr) ptr = pThis->
cptr->prev;
199 pThis->
cptr->prev->next = pThis->
cptr->next;
206 std::free(pThis->
cptr);
214 lnode *node = pThis->
head, *ptr;
225 assert(pThis->
aCount == 0);
list listClear(list pThis)
int listSkipForward(list pThis, int n)
void listSetElementDtor(list pThis, list_destructor f)
list listAppend(list pThis, void *el)
int listCount(list pThis)
int listToLast(list pThis)
list listRemove(list pThis)
int listToFirst(list pThis)
void listDispose(list pThis)
void * listCurrent(list pThis)
static lnode * appendPrim(list pThis, void *el)
static lnode * newNode(void *el)
int listIsEmpty(list pThis)
void(* list_destructor)(void *)
void(* f)(TrueTypeTable *)