[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    [PATCH 1/2] server: Remove no longer needed free_console.
From:       Jacek Caban <jacek () codeweavers ! com>
Date:       2020-11-30 17:42:02
Message-ID: 72c287cf-5651-e14c-e914-f91b0041dceb () codeweavers ! com
[Download RAW message or body]

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
---
  server/console.c | 30 +++++++-----------------------
  server/process.c |  4 +---
  server/process.h |  1 -
  3 files changed, 8 insertions(+), 27 deletions(-)



["0001-server-Remove-no-longer-needed-free_console.txt" (text/x-patch)]

diff --git a/server/console.c b/server/console.c
index 295db7767b2..0e779c77816 100644
--- a/server/console.c
+++ b/server/console.c
@@ -55,7 +55,6 @@ struct console
 {
     struct object                obj;           /* object header */
     int                          signaled;      /* is console signaled */
-    int                          num_proc;      /* number of processes attached to \
                this console */
     struct thread               *renderer;      /* console renderer thread */
     struct screen_buffer        *active;        /* active screen buffer */
     struct console_server       *server;        /* console server object */
@@ -513,7 +512,6 @@ static struct object *create_console(void)
 
     console->renderer      = NULL;
     console->signaled      = 0;
-    console->num_proc      = 0;
     console->active        = NULL;
     console->server        = NULL;
     console->fd            = NULL;
@@ -635,20 +633,6 @@ static struct object *create_screen_buffer( struct console \
*console )  return &screen_buffer->obj;
 }
 
-/* free the console for this process */
-int free_console( struct process *process )
-{
-    struct console *console = process->console;
-
-    if (!console) return 0;
-
-    process->console = NULL;
-    console->num_proc--;
-    release_object( console );
-
-    return 1;
-}
-
 struct thread *console_get_renderer( struct console *console )
 {
     return console->renderer;
@@ -755,10 +739,7 @@ static struct object *create_console_connection( struct console \
*console )  }
 
     if (console)
-    {
         current->process->console = (struct console *)grab_object( console );
-        console->num_proc++;
-    }
 
     return &connection->obj;
 }
@@ -1072,10 +1053,7 @@ static int console_connection_ioctl( struct fd *fd, \
ioctl_code_t code, struct as  if (!(process = get_process_from_id( pid ))) return 0;
 
             if (process->console)
-            {
                 current->process->console = (struct console *)grab_object( \
                process->console );
-                process->console->num_proc++;
-            }
             else set_error( STATUS_ACCESS_DENIED );
             release_object( process );
             return !get_error();
@@ -1200,7 +1178,13 @@ static struct object *console_connection_open_file( struct \
object *obj, unsigned  
 static int console_connection_close_handle( struct object *obj, struct process \
*process, obj_handle_t handle )  {
-    free_console( process );
+    struct console *console = process->console;
+
+    if (console)
+    {
+        process->console = NULL;
+        release_object( console );
+    }
     return 1;
 }
 
diff --git a/server/process.c b/server/process.c
index 5b3e29e5dfd..4a366b4d3b0 100644
--- a/server/process.c
+++ b/server/process.c
@@ -915,9 +915,7 @@ static void process_killed( struct process *process )
     if (process->exe_file) release_object( process->exe_file );
     process->idle_event = NULL;
     process->exe_file = NULL;
-
-    /* close the console attached to this process, if any */
-    free_console( process );
+    assert( !process->console );
 
     while ((ptr = list_head( &process->rawinput_devices )))
     {
diff --git a/server/process.h b/server/process.h
index b4f3660d89a..374eda65b6b 100644
--- a/server/process.h
+++ b/server/process.h
@@ -132,7 +132,6 @@ extern void detach_debugged_processes( struct thread *debugger );
 extern void enum_processes( int (*cb)(struct process*, void*), void *user);
 
 /* console functions */
-extern int free_console( struct process *process );
 extern struct thread *console_get_renderer( struct console *console );
 
 /* process tracing mechanism to use */



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic