diff options
| author | Ivan Maidanski <ivmai@mail.ru> | 2012-01-19 08:35:21 +0400 |
|---|---|---|
| committer | Ivan Maidanski <ivmai@mail.ru> | 2012-01-19 11:43:27 +0400 |
| commit | 89ac616c3ad72943b2474a1d51bd76cc77b18a26 (patch) | |
| tree | fa49a81db3800ad18a24f1b6657485f86d340606 /tests | |
| parent | f75471a21abbf8598aa327066f2c66c052f5bb46 (diff) | |
| download | libatomic_ops-89ac616c3ad72943b2474a1d51bd76cc77b18a26.tar.gz | |
test_stack: check_list() code refactoring and 'marks' size optimization
* tests/test_stack.c (marks): Set smaller size (according to the
maximum index passed to check_list).
* tests/test_stack.c (check_list): Store p->data to "i" local variable
(in the loop body) replacing multiple occurrences of p->data.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_stack.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/tests/test_stack.c b/tests/test_stack.c index 034fb27..31f7748 100644 --- a/tests/test_stack.c +++ b/tests/test_stack.c @@ -83,7 +83,7 @@ void print_list(void) printf("%d\n", p -> data); } -static char marks[MAX_NTHREADS * MAX_NTHREADS]; +static char marks[MAX_NTHREADS * (MAX_NTHREADS + 1) / 2 + 1]; void check_list(int n) { @@ -91,16 +91,19 @@ void check_list(int n) int i; for (i = 1; i <= n; ++i) marks[i] = 0; + for (p = (list_element *)AO_REAL_HEAD_PTR(the_list); p != 0; p = (list_element *)AO_REAL_NEXT_PTR(p -> next)) { - if (p -> data > n || p -> data <= 0) - fprintf(stderr, "Found erroneous list element %d\n", p -> data); - if (marks[p -> data] != 0) - fprintf(stderr, "Found duplicate list element %d\n", p -> data); - marks[p -> data] = 1; + i = p -> data; + if (i > n || i <= 0) + fprintf(stderr, "Found erroneous list element %d\n", i); + if (marks[i] != 0) + fprintf(stderr, "Found duplicate list element %d\n", i); + marks[i] = 1; } + for (i = 1; i <= n; ++i) if (marks[i] != 1) fprintf(stderr, "Missing list element %d\n", i); |
