https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f7e84e231b7eedec00b042...
commit f7e84e231b7eedec00b042b8c909c1b038c3f69f Author: Stanislav Motylkov x86corez@gmail.com AuthorDate: Tue Aug 18 20:22:27 2020 +0300 Commit: Stanislav Motylkov x86corez@gmail.com CommitDate: Tue Aug 18 20:23:34 2020 +0300
[TASKMGR] Revert 535e262 (#3016)
This reverts a change which introduced a regression.
CORE-17115 --- base/applications/taskmgr/perfdata.c | 43 ++++-------------------------------- base/applications/taskmgr/perfdata.h | 3 --- 2 files changed, 4 insertions(+), 42 deletions(-)
diff --git a/base/applications/taskmgr/perfdata.c b/base/applications/taskmgr/perfdata.c index 75c6c27fcd2..a19c0cb0d97 100644 --- a/base/applications/taskmgr/perfdata.c +++ b/base/applications/taskmgr/perfdata.c @@ -5,7 +5,6 @@ * * Copyright (C) 1999 - 2001 Brian Palmer brianp@reactos.org * Copyright (C) 2014 Ismael Ferreras Morezuelas swyterzone+ros@gmail.com - * Copyright (C) 2020 Aidan Case aidanzcase@gmail.com * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,8 +22,6 @@ */
#include "precomp.h" -#include "perfdata.h" -#include "winbase.h"
#define WIN32_LEAN_AND_MEAN #include <aclapi.h> @@ -567,50 +564,19 @@ BOOL PerfDataGetCommandLine(ULONG Index, LPWSTR lpCommandLine, ULONG nMaxCount) LPWSTR new_string;
PCMD_LINE_CACHE cache = global_cache; - PCMD_LINE_CACHE old_cache = NULL;
- /* [A] Search for a string already in cache? If so, use it. If not, check if invalid and free it if so. */ + /* [A] Search for a string already in cache? If so, use it */ while (cache && cache->pnext != NULL) { - if (cache->idx == Index && cache->pid == PerfDataGetProcessId(cache->idx) && cache->str != NULL) + if (cache->idx == Index && cache->str != NULL) { /* Found it. Use it, and add some ellipsis at the very end to make it cute */ wcsncpy(lpCommandLine, cache->str, CMD_LINE_MIN(nMaxCount, cache->len)); wcscpy(lpCommandLine + CMD_LINE_MIN(nMaxCount, cache->len) - wcslen(ellipsis), ellipsis); return TRUE; } - else if (cache->pid != PerfDataGetProcessId(cache->idx)) - { - /* There has been a shift, and this node is no longer valid. Free it and recache it later. */ - if (old_cache == NULL) - { - /* Unless, of course, its the global_cache. In that case, just shift global_cache to the next node and then free it. */ - old_cache = global_cache; - if (global_cache->pnext == NULL) - { - /* And we are out of cache. Whoops. */ - HeapFree(GetProcessHeap(), 0, old_cache); - global_cache = NULL; - break; - } - global_cache = global_cache->pnext; - cache = global_cache; - HeapFree(GetProcessHeap(), 0, old_cache); - } - else - { - /* We're in the middle of the cache, so we can safely shift nodes around. */ - old_cache->pnext = cache->pnext; - HeapFree(GetProcessHeap(), 0, cache); - cache = old_cache->pnext; - } - } - else - { - /* This is not the cache you're looking for. */ - old_cache = cache; - cache = cache->pnext; - } + + cache = cache->pnext; }
/* [B] We don't; let's allocate and load a value from the process mem... and cache it */ @@ -676,7 +642,6 @@ BOOL PerfDataGetCommandLine(ULONG Index, LPWSTR lpCommandLine, ULONG nMaxCount) new_entry->idx = Index; new_entry->str = new_string; new_entry->len = CommandLineStr.Length; - new_entry->pid = ProcessId;
if (!global_cache) global_cache = new_entry; diff --git a/base/applications/taskmgr/perfdata.h b/base/applications/taskmgr/perfdata.h index 8bd3d33ad57..51e11f47b2e 100644 --- a/base/applications/taskmgr/perfdata.h +++ b/base/applications/taskmgr/perfdata.h @@ -4,7 +4,6 @@ * perfdata.h * * Copyright (C) 1999 - 2001 Brian Palmer brianp@reactos.org - * Copyright (C) 2020 Aidan Case aidanzcase@gmail.com * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,7 +22,6 @@
#pragma once
-#include "windef.h" #ifdef __cplusplus extern "C" { #endif @@ -60,7 +58,6 @@ typedef struct _PERFDATA typedef struct _CMD_LINE_CACHE { DWORD idx; - ULONG pid; LPWSTR str; ULONG len; struct _CMD_LINE_CACHE* pnext;