This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
[PATCH 11/12] cygwin: Remove comparison of 'this' to NULL in _pinfo::exists
- From: Ken Brown <kbrown at cornell dot edu>
- To: cygwin-patches at cygwin dot com
- Date: Sat, 16 Sep 2017 22:04:19 -0400
- Subject: [PATCH 11/12] cygwin: Remove comparison of 'this' to NULL in _pinfo::exists
- Authentication-results: sourceware.org; auth=none
- References: <20170917020420.10488-1-kbrown@cornell.edu>
Fix all callers.
---
winsup/cygwin/fhandler_termios.cc | 2 +-
winsup/cygwin/pinfo.cc | 2 +-
winsup/cygwin/signal.cc | 2 +-
winsup/cygwin/sigproc.cc | 5 +++--
winsup/cygwin/times.cc | 10 +++++++---
5 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/winsup/cygwin/fhandler_termios.cc b/winsup/cygwin/fhandler_termios.cc
index 19fcfc9cd..4ce53433a 100644
--- a/winsup/cygwin/fhandler_termios.cc
+++ b/winsup/cygwin/fhandler_termios.cc
@@ -131,7 +131,7 @@ tty_min::kill_pgrp (int sig)
for (unsigned i = 0; i < pids.npids; i++)
{
_pinfo *p = pids[i];
- if (!p->exists () || p->ctty != ntty || p->pgid != pgid)
+ if (!p || !p->exists () || p->ctty != ntty || p->pgid != pgid)
continue;
if (p == myself)
killself = sig != __SIGSETPGRP && !exit_state;
diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc
index 7193f6884..e4eef8b3c 100644
--- a/winsup/cygwin/pinfo.cc
+++ b/winsup/cygwin/pinfo.cc
@@ -529,7 +529,7 @@ _pinfo::set_ctty (fhandler_termios *fh, int flags)
bool __reg1
_pinfo::exists ()
{
- return this && process_state && !(process_state & (PID_EXITED | PID_REAPED | PID_EXECED));
+ return process_state && !(process_state & (PID_EXITED | PID_REAPED | PID_EXECED));
}
bool
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc
index 016fce1de..69c5e2aad 100644
--- a/winsup/cygwin/signal.cc
+++ b/winsup/cygwin/signal.cc
@@ -332,7 +332,7 @@ kill_pgrp (pid_t pid, siginfo_t& si)
{
_pinfo *p = pids[i];
- if (!p->exists ())
+ if (!p || !p->exists ())
continue;
/* Is it a process we want to kill? */
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index 36fc64903..92fa5ea3d 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -152,7 +152,8 @@ proc_can_be_signalled (_pinfo *p)
bool __reg1
pid_exists (pid_t pid)
{
- return pinfo (pid)->exists ();
+ pinfo p (pid);
+ return p && p->exists ();
}
/* Return true if this is one of our children, false otherwise. */
@@ -1135,7 +1136,7 @@ remove_proc (int ci)
if (_my_tls._ctinfo != procs[ci].wait_thread)
procs[ci].wait_thread->terminate_thread ();
}
- else if (procs[ci]->exists ())
+ else if (procs[ci] && procs[ci]->exists ())
return true;
sigproc_printf ("removing procs[%d], pid %d, nprocs %d", ci, procs[ci]->pid,
diff --git a/winsup/cygwin/times.cc b/winsup/cygwin/times.cc
index fb480513f..5da0bbc7a 100644
--- a/winsup/cygwin/times.cc
+++ b/winsup/cygwin/times.cc
@@ -522,7 +522,7 @@ clock_gettime (clockid_t clk_id, struct timespec *tp)
pid = getpid ();
pinfo p (pid);
- if (!p->exists ())
+ if (!p || !p->exists ())
{
set_errno (EINVAL);
return -1;
@@ -746,8 +746,12 @@ clock_setres (clockid_t clk_id, struct timespec *tp)
extern "C" int
clock_getcpuclockid (pid_t pid, clockid_t *clk_id)
{
- if (pid != 0 && !pinfo (pid)->exists ())
- return (ESRCH);
+ if (pid != 0)
+ {
+ pinfo p (pid);
+ if (!p || !p->exists ())
+ return (ESRCH);
+ }
*clk_id = (clockid_t) PID_TO_CLOCKID (pid);
return 0;
}
--
2.14.1