Hi,

On 14/01/2018 07:48, Kang-Che Sung wrote:
> On Sun, Jan 14, 2018 at 5:30 AM, Povilas Kanapickas <[email protected]> wrote:
>> --- a/util-linux/chrt.c
>> +++ b/util-linux/chrt.c
>> @@ -36,17 +36,20 @@
>>  #include <sched.h>
>>  #include "libbb.h"
>>
>> -static const struct {
>> -       int policy;
>> -       char name[sizeof("SCHED_OTHER")];
>> -} policies[] = {
>> -       {SCHED_OTHER, "SCHED_OTHER"},
>> -       {SCHED_FIFO, "SCHED_FIFO"},
>> -       {SCHED_RR, "SCHED_RR"},
>> -       {SCHED_BATCH, "SCHED_BATCH"},
>> -       {0 /* unused */, ""},
>> -       {SCHED_IDLE, "SCHED_IDLE"}
>> -};
>> +static const char* get_policy_name(int pol)
>> +{
>> +       if (pol == SCHED_OTHER)
>> +               return "SCHED_OTHER";
>> +       if (pol == SCHED_FIFO)
>> +               return "SCHED_FIFO";
>> +       if (pol == SCHED_RR)
>> +               return "SCHED_RR";
>> +       if (pol == SCHED_BATCH)
>> +               return "SCHED_BATCH";
>> +       if (pol == SCHED_IDLE)
>> +               return "SCHED_IDLE";
>> +       return "";
>> +}
>>
>>  static void show_min_max(int pol)
>>  {
> 
> I don't like the chain of "if"s here. Have you checked the size changes on the
> compiled code?
> Since this SCHED policy constants are just enum values, what about using
> "switch-case" statement? The problem of if-chains is that some compilers are
> not smart at figuring out that the comparisons are just enums and can be
> optimized. The switch-case statement will make it more clear.
> 
> Sorry for nit-picking the code.
> 

Thanks a lot for suggestion. I've checked what impact it has on code
size and indeed switch statement results in smaller code size in all
architectures except x86.

Regards,
Povilas

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to