From: Eric Dumazet > Sent: 28 September 2015 15:27 > On Mon, 2015-09-28 at 14:12 +0000, David Laight wrote: > > From: Neil Horman > > > Sent: 28 September 2015 14:51 > > > On Mon, Sep 28, 2015 at 02:34:04PM +0200, Denys Vlasenko wrote: > > > > Seemingly innocuous sctp_trans_state_to_prio_map[] array > > > > is way bigger than it looks, since > > > > "[SCTP_UNKNOWN] = 2" expands into "[0xffff] = 2" ! > > > > > > > > This patch replaces it with switch() statement. > > > > What about just adding 1 (and masking) before indexing the array? > > That might require a static inline function with a local static array. > > > > Or define the array as (say) [16] and just mask the state before using > > it as an index? > > Just let the compiler do its job, instead of obfuscating source. > > Compilers can transform a switch into an (optimal) table if it is really > a gain. The compiler can choose between a jump table and nested ifs for a switch statement. I've never seen it convert one into a data array index. David ��.n��������+%������w��{.n�����{������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f