Mercurial > code
diff array.c @ 120:68784ea3fabb
Fix (p)array_find
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 28 Feb 2012 21:49:20 +0100 |
parents | d6a78dea70c9 |
children | 59745a235d16 |
line wrap: on
line diff
--- a/array.c Tue Feb 28 21:15:48 2012 +0100 +++ b/array.c Tue Feb 28 21:49:20 2012 +0100 @@ -283,15 +283,13 @@ { int st, i; - for (i = st = 0; i < arr->length && !st; ++i) + for (i = st = 0; i < arr->length && st != 1; ++i) st = fn((char *)arr->data + OFFSET(i), u); - if (st) - *(char **)dst = (char *)arr->data + OFFSET(--i); - else - st = 0; + if (st && dst) + *(char **)dst = (char *)arr->data + OFFSET(i - 1); - return st; + return (st) ? i - 1 : -1; } /*