diff options
author | Peter Foley <pefoley2@pefoley.com> | 2016-04-02 11:36:18 -0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2016-04-04 16:46:51 +0200 |
commit | 0008bdea02b690ab19ffe997499cb9a96ee5a66d (patch) | |
tree | f5206f37aff7792be5369cdf865c33d5687b7c13 /winsup/cygwin/signal.cc | |
parent | e7e6119241d02241c3d114cff037340c12245393 (diff) | |
download | cygnal-0008bdea02b690ab19ffe997499cb9a96ee5a66d.tar.gz cygnal-0008bdea02b690ab19ffe997499cb9a96ee5a66d.tar.bz2 cygnal-0008bdea02b690ab19ffe997499cb9a96ee5a66d.zip |
Refactor to avoid nonnull checks on "this" pointer.
G++ 6.0 asserts that the "this" pointer is non-null for member
functions.
Refactor methods that check if "this" is non-null to resolve this.
winsup/cygwin/ChangeLog:
external.cc (cygwin_internal): Check for a null pinfo before calling
cmdline.
fhandler_dsp.cc (Audio::blockSize): Make static.
fhandler_dsp.cc (Audio_in): add default_buf_info.
fhandler_dsp.cc (Audio_out): Ditto.
fhandler_dsp.cc (Audio_out::buf_info): Refactor method to call
default_buf_info if dev_ is null.
fhandler_dsp.cc (Audio_in::buf_info): Ditto.
fhandler_dsp.cc (fhandler_dev_dsp::_ioctl): Call Audio_out::default_buf_info if audio_out_ is null.
fhandler_dsp.cc (fhandler_dev_dsp::_ioctl): Call Audio_in::default_buf_info if audio_in_ is null.
fhandler_process.cc (format_process_fd): Check if pinfo is null.
fhandler_process.cc (format_process_root): Ditto.
fhandler_process.cc (format_process_cwd): Ditto.
fhandler_process.cc (format_process_cmdline): Ditto.
signal.cc (tty_min::kill_pgrp): Ditto.
signal.cc (_pinfo::kill0): Ditto.
sigproc.cc (pid_exists): Ditto.
sigproc.cc (remove_proc): Ditto.
times.cc (clock_gettime): Ditto.
times.cc (clock_getcpuclockid): Ditto.
path.cc (cwdstuff::override_win32_cwd): Check if old_cwd is null.
path.cc (fcwd_access_t::Free): Factor null check of "this" out to
caller(s).
pinfo.cc (_pinfo::exists): Ditto.
pinfo.cc (_pinfo::fd): Ditto.
pinfo.cc (_pinfo::fds): Ditto.
pinfo.cc (_pinfo::root): Ditto.
pinfo.cc (_pinfo::cwd): Ditto.
pinfo.cc (_pinfo::cmdline): Ditto.
signal.cc (_pinfo::kill): Ditto.
pinfo.cc (_pinfo::commune_request): remove non-null check on "this", as
this method is only called from pinfo.cc after null checks
pinfo.cc (_pinfo::pipe_fhandler): remove non-null check on "this", as
this method is only called from pipe.cc (fhandler_pipe::open) after a null check.
Signed-off-by: Peter Foley <pefoley2@pefoley.com>
Diffstat (limited to 'winsup/cygwin/signal.cc')
-rw-r--r-- | winsup/cygwin/signal.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc index 8dfd4ab63..dcb010be4 100644 --- a/winsup/cygwin/signal.cc +++ b/winsup/cygwin/signal.cc @@ -263,7 +263,7 @@ _pinfo::kill (siginfo_t& si) } this_pid = pid; } - else if (si.si_signo == 0 && this && process_state == PID_EXITED) + else if (si.si_signo == 0 && process_state == PID_EXITED) { this_process_state = process_state; this_pid = pid; @@ -299,8 +299,12 @@ kill0 (pid_t pid, siginfo_t& si) syscall_printf ("signal %d out of range", si.si_signo); return -1; } - - return (pid > 0) ? pinfo (pid)->kill (si) : kill_pgrp (-pid, si); + if (pid > 0) { + pinfo p(pid); + return p && p->kill(si); + } else { + return kill_pgrp(-pid, si); + } } int @@ -326,7 +330,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? */ |