In all builds (64-bit and 32-bit), OBJID_CLIENT is defined as (LONG) 0xFFFFFFFC. However, testing indicates that the lParam value passed to WebKit from the operating system is sometimes passed as 0x0FFFFFFFC, and sometimes as 0xFFFFFFFFFFFFFFFC (depending on client software). This is probably a bug at the client program level (or perhaps even Windows itself), but we can guard against as follows:
Instead of checking:
lParam != OBJID_CLIENT
we can truncate the value:
static_cast<LONG>(lParam) != OBJID_CLIENT
This will have no effect on our 32-bit builds, and ensure that our 64-bit builds are insulated against this problem.
Created attachment 246275 [details]
Committed r179841: <http://trac.webkit.org/changeset/179841>