embox

Форк
0
/
dlist_debug.c 
32 строки · 694.0 Байт
1
/**
2
 * @file
3
 * @brief Paranoia checks of doubly-linked lists
4
 *
5
 * @date 05.12.2013
6
 * @author Eldar Abusalimov
7
 */
8
#include <inttypes.h>
9
#include <assert.h>
10

11
#include <lib/libds/dlist.h>
12

13
#if DLIST_DEBUG_VERSION
14
void __dlist_debug_check(const struct dlist_head *head) {
15
#ifndef NDEBUG
16
	const struct dlist_head *p = head->prev;
17
	const struct dlist_head *n = head->next;
18
	uintptr_t poison = head->poison;
19

20
	assertf(((!poison || (void *) ~poison == head) &&
21
			n->prev == head &&
22
			p->next == head),
23
			"\n"
24
			"head: %p, poison: %p, ~poison: %p,\n"
25
			"n: %p, n->prev: %p,\n"
26
			"p: %p, p->next: %p\n",
27
			head, (void *)poison, (void *) ~poison,
28
			n, n->prev,
29
			p, p->next);
30
#endif
31
}
32
#endif
33

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.