| 425 | } |
| 426 | |
| 427 | long activeDefragQuickListNode(quicklist *ql, quicklistNode **node_ref) { |
| 428 | quicklistNode *newnode, *node = *node_ref; |
| 429 | long defragged = 0; |
| 430 | unsigned char *newzl; |
| 431 | if ((newnode = (quicklistNode*)activeDefragAlloc(node))) { |
| 432 | if (newnode->prev) |
| 433 | newnode->prev->next = newnode; |
| 434 | else |
| 435 | ql->head = newnode; |
| 436 | if (newnode->next) |
| 437 | newnode->next->prev = newnode; |
| 438 | else |
| 439 | ql->tail = newnode; |
| 440 | *node_ref = node = newnode; |
| 441 | defragged++; |
| 442 | } |
| 443 | if ((newzl = (unsigned char*)activeDefragAlloc(node->zl))) |
| 444 | defragged++, node->zl = newzl; |
| 445 | return defragged; |
| 446 | } |
| 447 | |
| 448 | long activeDefragQuickListNodes(quicklist *ql) { |
| 449 | quicklistNode *node = ql->head; |
no test coverage detected