diff src/w32.c @ 97372:aeb822613377

(w32_system_process_attributes): If the process does not exist, return nil.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 09 Aug 2008 19:05:02 +0000
parents 23de3091fdd0
children 2c195017488c
line wrap: on
line diff
--- a/src/w32.c	Sat Aug 09 18:19:28 2008 +0000
+++ b/src/w32.c	Sat Aug 09 19:05:02 2008 +0000
@@ -3642,6 +3642,7 @@
   Lisp_Object cmd_str, decoded_cmd, tem;
   HANDLE h_snapshot, h_proc;
   DWORD proc_id;
+  int found_proc = 0;
   char uname[UNLEN+1], gname[GNLEN+1], domain[1025];
   DWORD ulength = sizeof (uname), dlength = sizeof (domain), trash;
   DWORD glength = sizeof (gname);
@@ -3701,6 +3702,7 @@
 	      attrs = Fcons (Fcons (Qthcount,
 				    make_fixnum_or_float (pe.cntThreads)),
 			     attrs);
+	      found_proc = 1;
 	      break;
 	    }
 	}
@@ -3708,6 +3710,12 @@
       CloseHandle (h_snapshot);
     }
 
+  if (!found_proc)
+    {
+      UNGCPRO;
+      return Qnil;
+    }
+
   h_proc = OpenProcess (PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
 			FALSE, proc_id);
   /* If we were denied a handle to the process, try again after