diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2021-12-01 13:09:56 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2021-12-03 08:31:05 -0500 |
commit | 7509b82979550970342a4494d727b3fb06bffd65 (patch) | |
tree | dcb494b490c750bc3ea370ed875b1b59ddbcd28d /gdb/inf-child.c | |
parent | 857dfb92de66c1ce66e78ae40a4b7d0e8fdbf2f0 (diff) | |
download | gdb-7509b82979550970342a4494d727b3fb06bffd65.zip gdb-7509b82979550970342a4494d727b3fb06bffd65.tar.gz gdb-7509b82979550970342a4494d727b3fb06bffd65.tar.bz2 |
gdb: change store_waitstatus to return a target_waitstatus by value
store_waitstatus is basically a translation function between a status
integer and an equivalent target_waitstatus object. It would make sense
for it to take the integer as a parameter and return the
target_waitstatus by value. Do that, and rename to
host_status_to_waitstatus. Users can then do:
ws = host_status_to_waitstatus (status)
which does the right thing, given the move constructor of
target_waitstatus.
Change-Id: I7a07d59d3dc19d3ed66929642f82f44f3e85d61b
Diffstat (limited to 'gdb/inf-child.c')
-rw-r--r-- | gdb/inf-child.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/gdb/inf-child.c b/gdb/inf-child.c index 5e821f4..b65bbf3 100644 --- a/gdb/inf-child.c +++ b/gdb/inf-child.c @@ -51,18 +51,19 @@ inf_child_target::info () const return inf_child_target_info; } -/* Helper function for child_wait and the derivatives of child_wait. - HOSTSTATUS is the waitstatus from wait() or the equivalent; store our - translation of that in OURSTATUS. */ -void -store_waitstatus (struct target_waitstatus *ourstatus, int hoststatus) +/* See inf-child.h. */ + +target_waitstatus +host_status_to_waitstatus (int hoststatus) { if (WIFEXITED (hoststatus)) - ourstatus->set_exited (WEXITSTATUS (hoststatus)); + return target_waitstatus ().set_exited (WEXITSTATUS (hoststatus)); else if (!WIFSTOPPED (hoststatus)) - ourstatus->set_signalled (gdb_signal_from_host (WTERMSIG (hoststatus))); + return target_waitstatus ().set_signalled + (gdb_signal_from_host (WTERMSIG (hoststatus))); else - ourstatus->set_stopped (gdb_signal_from_host (WSTOPSIG (hoststatus))); + return target_waitstatus ().set_stopped + (gdb_signal_from_host (WSTOPSIG (hoststatus))); } inf_child_target::~inf_child_target () |