See two lines after that moved chunk.
                if (!(preferred & 1))
                        preferred++; 

Anyway, perhaps the whole test should be removed, dunno. I am removing just false gcc warning.