server: Remove dead check in is_cpu_supported().
Alexandre Julliard
julliard at winehq.org
Sun Jan 22 12:28:02 CST 2017
Henri Verbeet <hverbeet at gmail.com> writes:
> For what it's worth,
>
> On 21 January 2017 at 16:25, Gerald Pfeifer <gerald at pfeifer.com> wrote:
>> I am wondering about the following piece of code in server/thread.c:
>>
>> int is_cpu_supported( enum cpu_type cpu )
>> {
>> unsigned int prefix_cpu_mask = get_prefix_cpu_mask();
>>
>> if (CPU_FLAG(cpu) && (supported_cpus & prefix_cpu_mask & CPU_FLAG(cpu))) return 1;
>>
>> that was added as part of
>>
>> commit 1e78c99388c61d353cf60787eac6415328f54560
>> Author: Alexandre Julliard <julliard at winehq.org>
>> Date: Fri Nov 22 12:32:48 2013 +0100
>>
>> kernel32: Validate the architecture of newly created processes on the server side.
>>
> It's actually older than that, and seems to have been introduced by
>
> commit 279defe66e1265eeae3e2a72126c2b2f75e20c99
> Author: Alexandre Julliard <julliard at winehq.org>
> Date: Fri Apr 3 14:59:12 2009 +0200
>
> server: Verify that the client is using a supported CPU type.
>
>> That means CPU_FLAG(...) is always positive and different from zero
>> -- unless its parameter is 32 or higher on a 32-bit architecture
>> (and the 1 shifts out).
>>
> But the definition of CPU_FLAG doesn't really matter for this. If
> "CPU_FLAG(cpu)" evaluates to zero, "supported_cpus & prefix_cpu_mask &
> CPU_FLAG(cpu)" evaluates to zero as well.
Yes, it's clearly redundant. I seem to remember there was a need to
avoid a compiler warning, but that may have been from a previous version
that didn't use a shift.
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list