From: Vsevolod Stakhov Date: Tue, 2 Jun 2015 15:28:27 +0000 (+0100) Subject: Use most significant bit, not least significant one. X-Git-Tag: 1.0.0~578^2~2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6d7f11963edfd5113f32060267695c513613ec1f;p=rspamd.git Use most significant bit, not least significant one. --- diff --git a/src/libserver/task.c b/src/libserver/task.c index c7803cabd..0f73c15f1 100644 --- a/src/libserver/task.c +++ b/src/libserver/task.c @@ -283,17 +283,21 @@ rspamd_task_load_message (struct rspamd_task *task, static gint rspamd_task_select_processing_stage (struct rspamd_task *task, guint stages) { - gint st; + gint st, mask; - st = ffs (task->processed_stages); + mask = task->processed_stages; - if (st == -1) { - st = (1 << 0); + if (mask == 0) { + st = 0; } else { - st = (1 << (st + 1)); + for (st = 1; mask != 1; st ++) { + mask = (unsigned int)mask >> 1; + } } + st = 1 << st; + if (stages & st) { return st; }