From 666fba74cd97abe077ad65a0bad1c8ccfc3458d2 Mon Sep 17 00:00:00 2001 From: Vincent Wei Date: Sun, 28 Mar 2021 21:13:05 +0800 Subject: [PATCH] optimize __mg_get_nr_idle_slots --- src/include/misc.h | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/include/misc.h b/src/include/misc.h index f289f991..99b5af04 100644 --- a/src/include/misc.h +++ b/src/include/misc.h @@ -151,12 +151,29 @@ size_t __mg_get_nr_idle_slots (unsigned char* bitmap, size_t len_bmp) size_t i, j; for (i = 0; i < len_bmp; i++) { - for (j = 0; j < 8; j++) { - if (*bitmap & (0x80 >> j)) - idle++; + if (*bitmap) { + if (*bitmap == 0xFF) { + idle += 8; + } + else { + if (*bitmap & 0xF0) { + for (j = 0; j < 4; j++) { + if (*bitmap & (0x80 >> j)) + idle++; + } + } + if (*bitmap & 0x0F) { + for (j = 0; j < 4; j++) { + if (*bitmap & (0x08 >> j)) + idle++; + } + } + } } + bitmap++; } + return idle; }