X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Falloc%2Ftiny.c;h=feffa618e0cf629d9edc1822ed89d70ba8dde290;hp=b965eb471b329f9ff4108513f0cf10a6796c8928;hb=da153b468e362f89a0bfd296a1f733f345aecad3;hpb=bd294f1df2a9a2a97bf32336ddd22e53e0e0b8f7;ds=sidebyside diff --git a/ccan/alloc/tiny.c b/ccan/alloc/tiny.c index b965eb47..feffa618 100755 --- a/ccan/alloc/tiny.c +++ b/ccan/alloc/tiny.c @@ -152,13 +152,13 @@ static bool long_enough(unsigned long offset, unsigned long len, static unsigned long find_free_end(unsigned char *arr, unsigned long arrsize) { - unsigned long end; + long i; - for (end = 0; end < arrsize; end++) { - if (!arr[end]) - break; + for (i = arrsize-1; i >= 0; i--) { + if (arr[i]) + return i + 1; } - return end; + return 0; } void *tiny_alloc_get(void *pool, unsigned long poolsize,