* pinfo.cc (pinfo::init): Clarify comment slightly.

(_onreturn): New helper class.
(winpids:add): Remove copied stuff.  Try to put process handle into pinfo in
question and use _onreturn class to control when to close it.
(winpids::release): Remove use of copied array.  Free procinfo when hProc is
NULL.  Otherwise call release and call CloseHandle on hProc.
* pinfo.h (winpids::copied): Remove throughout class.
This commit is contained in:
Christopher Faylor
2005-12-22 03:16:36 +00:00
parent 9981546a7c
commit f3ea02b1cf
3 changed files with 116 additions and 31 deletions

View File

@@ -205,7 +205,6 @@ class winpids
DWORD npidlist;
DWORD *pidlist;
pinfo *pinfolist;
bool *copied;
DWORD pinfo_access; // access type for pinfo open
DWORD (winpids::* enum_processes) (bool winpid);
DWORD enum_init (bool winpid);
@@ -218,10 +217,9 @@ public:
void set (bool winpid);
winpids (): make_copy (true), enum_processes (&winpids::enum_init) {}
winpids (int): make_copy (false), npidlist (0), pidlist (NULL), pinfolist (NULL),
copied (NULL), pinfo_access (0), enum_processes (&winpids::enum_init),
npids (0) {}
pinfo_access (0), enum_processes (&winpids::enum_init), npids (0) {}
winpids (DWORD acc): make_copy (false), npidlist (0), pidlist (NULL), pinfolist (NULL),
copied (NULL), pinfo_access (acc), enum_processes (&winpids::enum_init),
pinfo_access (acc), enum_processes (&winpids::enum_init),
npids (0)
{
set (0);