wine/server: removed obsolete one-iteration loop from request forming macro (try 2)
Marcus Meissner
meissner at suse.de
Thu Aug 23 03:05:26 CDT 2012
On Thu, Aug 23, 2012 at 11:14:23AM +0400, Oleg Yarigin wrote:
> An original message was sent with wrong author`s name by mistake, so
> I resend this patch with hope it was the only reason to reject it.
It was not the only reason.
A single loop is a common pattern in C to allow safe encapsulation
and handling of blocks, or doing "break;"/"continue;" style things.
One thing that it allows here in Wine is that the variable definitions
are at the begin of a { } block and not in the middle of the code
to allow old C standard builds to work still.
There is no "break;" usage, although I spotted 1 "goto done;" which
could be just a break; ;)
The compiler will optimize everything of those loops away, so this change
also brings no performance improvement.
Ciao, Marcus
> ---
> include/wine/server.h | 22 +++++++++-------------
> 1 file changed, 9 insertions(+), 13 deletions(-)
>
> diff --git a/include/wine/server.h b/include/wine/server.h
> index d573d1f..dcbc7fa 100644
> --- a/include/wine/server.h
> +++ b/include/wine/server.h
> @@ -124,19 +124,15 @@ static inline void *wine_server_get_ptr( client_ptr_t ptr )
> /* macros for server requests */
>
> #define SERVER_START_REQ(type) \
> - do { \
> - struct __server_request_info __req; \
> - struct type##_request * const req = &__req.u.req.type##_request; \
> - const struct type##_reply * const reply = &__req.u.reply.type##_reply; \
> - memset( &__req.u.req, 0, sizeof(__req.u.req) ); \
> - __req.u.req.request_header.req = REQ_##type; \
> - __req.data_count = 0; \
> - (void)reply; \
> - do
> -
> -#define SERVER_END_REQ \
> - while(0); \
> - } while(0)
> + struct __server_request_info __req; \
> + struct type##_request * const req = &__req.u.req.type##_request; \
> + const struct type##_reply * const reply = &__req.u.reply.type##_reply; \
> + memset( &__req.u.req, 0, sizeof(__req.u.req) ); \
> + __req.u.req.request_header.req = REQ_##type; \
> + __req.data_count = 0; \
> + (void)reply;
> +
> +#define SERVER_END_REQ
>
>
> #endif /* __WINE_WINE_SERVER_H */
> -- 1.7.9.5
>
>
--
Open Linux Security Engineer Position at SUSE: http://bit.ly/Li4RbS
More information about the wine-devel
mailing list