Module: wine Branch: master Commit: e5493e34e4a0c21771200b0ecb72b7c24c484f39 URL: https://source.winehq.org/git/wine.git/?a=commit;h=e5493e34e4a0c21771200b0ec...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Jul 6 19:25:50 2020 +0200
server: Always create fd for console_input object.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
server/console.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/server/console.c b/server/console.c index 729cfa4061..fc12a3a8f3 100644 --- a/server/console.c +++ b/server/console.c @@ -258,10 +258,7 @@ static struct fd *console_input_get_fd( struct object* obj ) { struct console_input *console_input = (struct console_input*)obj; assert( obj->ops == &console_input_ops ); - if (console_input->fd) - return (struct fd*)grab_object( console_input->fd ); - set_error( STATUS_OBJECT_TYPE_MISMATCH ); - return NULL; + return (struct fd *)grab_object( console_input->fd ); }
static enum server_fd_type console_get_fd_type( struct fd *fd ) @@ -400,15 +397,20 @@ static struct object *create_console_input( struct thread* renderer, int fd ) } if (fd != -1) /* bare console */ { - if (!(console_input->fd = create_anonymous_fd( &console_fd_ops, fd, &console_input->obj, - FILE_SYNCHRONOUS_IO_NONALERT ))) - { - release_object( console_input ); - return NULL; - } - allow_fd_caching( console_input->fd ); + console_input->fd = create_anonymous_fd( &console_fd_ops, fd, &console_input->obj, + FILE_SYNCHRONOUS_IO_NONALERT ); } - + else + { + console_input->fd = alloc_pseudo_fd( &console_fd_ops, &console_input->obj, + FILE_SYNCHRONOUS_IO_NONALERT ); + } + if (!console_input->fd) + { + release_object( console_input ); + return NULL; + } + allow_fd_caching( console_input->fd ); return &console_input->obj; }