From 4950a5230fa8aaa05a9843f0c95b515b0d7eb7ca Mon Sep 17 00:00:00 2001 From: Hartmut Birr Date: Wed, 26 Mar 2003 22:10:43 +0000 Subject: [PATCH] - Fixed a bug in CsrDeleteConsole. Sometimes the console wasn't removed from the console list. svn path=/trunk/; revision=4435 --- reactos/subsys/csrss/api/conio.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/reactos/subsys/csrss/api/conio.c b/reactos/subsys/csrss/api/conio.c index d9933a01e46..019970e6d05 100644 --- a/reactos/subsys/csrss/api/conio.c +++ b/reactos/subsys/csrss/api/conio.c @@ -1,4 +1,4 @@ -/* $Id: conio.c,v 1.46 2003/03/21 21:09:41 hbirr Exp $ +/* $Id: conio.c,v 1.47 2003/03/26 22:10:43 hbirr Exp $ * * reactos/subsys/csrss/api/conio.c * @@ -817,16 +817,20 @@ VOID STDCALL CsrDeleteConsole( PCSRSS_CONSOLE Console ) if( Console->Next != Console ) { ActiveConsole = Console->Next; - Console->Prev->Next = Console->Next; - Console->Next->Prev = Console->Prev; } else ActiveConsole = 0; } + if (Console->Next != Console) + { + Console->Prev->Next = Console->Next; + Console->Next->Prev = Console->Prev; + } + if( ActiveConsole ) CsrDrawConsole( ActiveConsole->ActiveBuffer ); - UNLOCK; if( !--Console->ActiveBuffer->Header.ReferenceCount ) CsrDeleteScreenBuffer( Console->ActiveBuffer ); + UNLOCK; NtClose( Console->ActiveEvent ); RtlFreeUnicodeString( &Console->Title ); RtlFreeHeap( CsrssApiHeap, 0, Console );