"warning: argument to 'sizeof' in 'memcmp' call is the same pointer type 'SDBQUERYRESULT_VISTA *' (aka 'struct tagSDBQUERYRESULT_VISTA *') as the destination; expected 'SDBQUERYRESULT_VISTA' (aka 'struct tagSDBQUERYRESULT_VISTA') or an explicit length [-Wsizeof-pointer-memaccess]"
CORE-14306
A bit of history: in r71528, I tried to fix our explorer often
crashing while browsing directories. It was linked to the fact
that a notification result may arrive while the notification
structure had already been deleted.
The fix for this was actually broken and was leading to a double
leak: the notification structure was leaked. But also the handle
to the directory that had been browsed!
This means that the directory couldn't be modified anymore as
a leaked handle to it was still open.
Actually, when notifications are cancel, the kernel properly
calls the notification routine, but with a specific error code.
So the correct fix is to stop handling that notification when
we receive this error code. This is the correct fix with no leaks.
This commit is a complete r71528 revert with the appropriate fix.
CORE-10941
CORE-12843
This is a temporary fix for a timeout in windowscodecs:tiffformat.
The test ends up invoking Win32ErrorHandler with:
_TIFFVSetField: <IStream object>: Bad value 0 for "ResolutionUnit" tag.
Ideally we'd keep the MessageBox version of the error/warning handlers but
make them respect the current error mode to avoid blocking tests and other
non-interactive applications.
The initial tests in send.c validate correct behavior of send/sendto on
disconnected sockets (CORE-9810), fixed in r68129.
However, the helper functions are generic, so they can be used for additional
tests against AFD. Because AFD's create packet structure changes between
Windows versions, the functions check the OS version to determine the right
layout.
Tests succeed on Win2003 as well as Win10.
- Make sure the DWLP_* values are correct on _WIN64
- Don't use the DWL_* constants, they are not portable. Enforce this by removing them entirely from winuser.h
- Make sure Get/SetWindowLong*Ptr* is used and pointers are not truncated to LONG
Previously, we would keep sampling the CPU frequency until two subsequent
samples differed by at most 1 MHz. This could take several seconds, and would
unnecessarily delay boot.
Instead, if sampling is too unreliable, just give up and calculate the average
frequency from 10 samples. This is no worse than picking the frequency that
just happened to be returned twice in a row.
The fact that this method of sampling fails could indicate that there's a
problem with our performance counter implementation or timer interrupt,
but that's a separate issue...