"Dan Kegel" dank@kegel.com wrote:
On Nov 14, 2007 10:16 PM, Dmitry Timoshkov
While looking at the valgrind reports above I noticed that a lot of warnings are triggered in NTDLL_queue_process_apc by the fact that not the whole apc_call_t union is initialized before passing it to the server. In contrast SERVER_START_REQ always initializes __server_request_info to 0 before the client starts to fill the fields. Probably that's the question to Alexandre whether we should memset(0) apc_call_t before filling it, or just ignore valgrind warnings.
Oh, he'd undoubtedly prefer ignoring to memsetting. But he would like it even better if we can avoid sending unneeded bytes. Are the extra bytes at the end (they ought to be)? If so, whatever decides how many bytes to send could be just a bit smarter.
Since wineserver sequests are sent without an attempt to reduce the size of written data (and memset(0) is a part of SERVER_START_REQ macro) I'd assume that it's ok to do the same for server APC requests. Otherwise server calls need to be optimized as well.