* 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:
		@@ -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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user