https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5ca83e516cbb5ab3fd809e044c0de4c018bd20c3
commit 5ca83e516cbb5ab3fd809e044c0de4c018bd20c3 Author: Jérôme Gardou <[email protected]> AuthorDate: Tue Jun 22 12:44:56 2021 +0200 Commit: Jérôme Gardou <[email protected]> CommitDate: Thu Jun 24 15:03:36 2021 +0200 [CMD] Improve performance a bit Do not use custom alloc/free functions by default. Do not free resources at process exit. - You're doing it brick by brick while the OS & CRT do that with a bulldozer better than you do. --- base/shell/cmd/CMakeLists.txt | 2 -- base/shell/cmd/cmd.c | 21 ++++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/base/shell/cmd/CMakeLists.txt b/base/shell/cmd/CMakeLists.txt index 471ecd0dfe1..b1cf669c03a 100644 --- a/base/shell/cmd/CMakeLists.txt +++ b/base/shell/cmd/CMakeLists.txt @@ -1,6 +1,4 @@ -add_definitions(-D_DEBUG_MEM) - include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine) include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/conutils) diff --git a/base/shell/cmd/cmd.c b/base/shell/cmd/cmd.c index 99070ff24f9..0f16229172f 100644 --- a/base/shell/cmd/cmd.c +++ b/base/shell/cmd/cmd.c @@ -2333,6 +2333,17 @@ static VOID Cleanup(VOID) ParseCommandLine(_T("\\cmdexit.bat")); } + /* Remove ctrl break handler */ + RemoveBreakHandler(); + + /* Restore the default console mode */ + SetConsoleMode(ConStreamGetOSHandle(StdIn), + ENABLE_PROCESSED_INPUT | ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT); + SetConsoleMode(ConStreamGetOSHandle(StdOut), + ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT); + + +#ifdef _DEBUG_MEM #ifdef FEATURE_DIRECTORY_STACK /* Destroy directory stack */ DestroyDirectoryStack(); @@ -2344,15 +2355,7 @@ static VOID Cleanup(VOID) /* Free GetEnvVar's buffer */ GetEnvVar(NULL); - - /* Remove ctrl break handler */ - RemoveBreakHandler(); - - /* Restore the default console mode */ - SetConsoleMode(ConStreamGetOSHandle(StdIn), - ENABLE_PROCESSED_INPUT | ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT); - SetConsoleMode(ConStreamGetOSHandle(StdOut), - ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT); +#endif /* _DEBUG_MEM */ DeleteCriticalSection(&ChildProcessRunningLock); }
