[ros-dev] [ros-diffs] [jimtabor] 41776: - Implement the client shutdown procedure. Tested with wine user32 msg undocumented 0x3B tests. Wine tests: msg: 6175 tests executed (0 marked as todo, 937 failures), 5 skipped. - Add missing end session types. - Reference: winproc.c WM_CLIENTSHUTDOWN http://wiki.winprog.org/wiki/Windows_messages
Timo Kreuzer
timo.kreuzer at web.de
Sun Jul 5 13:07:16 CEST 2009
jimtabor at svn.reactos.org schrieb:
> Author: jimtabor
> Date: Sun Jul 5 06:21:35 2009
> New Revision: 41776
>
> URL: http://svn.reactos.org/svn/reactos?rev=41776&view=rev
> Log:
> - Implement the client shutdown procedure. Tested with wine user32 msg undocumented 0x3B tests. Wine tests: msg: 6175 tests executed (0 marked as todo, 937 failures), 5 skipped.
> - Add missing end session types.
> - Reference: winproc.c WM_CLIENTSHUTDOWN http://wiki.winprog.org/wiki/Windows_messages
>
> [...]
>
> + List = IntWinListChildren(pWindow);
>
Oh, how I loathe this function.
It walks through the chain of windows to count them, allocates a buffer
from paged pool. Walks through the chain again, fills the buffer with
the windows' handles and returns the buffer so that the calling function
can walk through the buffer and use the handles to query the pointers to
the windows again. And this all happens while holding the global user lock.
Hint: you can remove 11 lines of code and change 2 lines and get the
same result, only faster.
Regards,
Timo
More information about the Ros-dev
mailing list