Martin Wilck Martin.Wilck@fujitsu-siemens.com writes:
-static int FILE_GetUnixHandleType( HANDLE handle, DWORD access, enum fd_type *type, int *flags ) +static int FILE_GetUnixHandleType( HANDLE handle, DWORD access, enum fd_type *type, int *flags_ptr ) {
- int ret, fd = -1;
- int ret, flags, fd = -1;
- ret = wine_server_handle_to_fd( handle, access, &fd, type, flags );
- ret = wine_server_handle_to_fd( handle, access, &fd, type, &flags );
- if (flags_ptr) *flags_ptr = flags;
This is of course the most robust solution - but because FILE_GetUnixHandleType is internal, you might as well require all functions calling it to pass a valid flags pointer, and let FILE_GetUnixHandle call wine_server_handle_to_fd directly, at a minimum performance gain.
My concern with that approach is that functions using FILE_GetUnixHandle wouldn't handle the shutdown flags correctly. The alternative would be to retire FILE_GetUnixHandle, or maybe move the shutdown flags handling into wine_server_handle_to_fd.