Use new and delete for struct infcall_suspend_state

This changes infrun.c to use new and delete for infcall_suspend_state.
This enables the coming cleanups.

gdb/ChangeLog
2018-09-17  Tom Tromey  <tom@tromey.com>

	* gdbthread.h (struct thread_suspend_state): Add initializers.
	(class thread_info) <suspend>: Remove initializer.
	* infrun.c (struct infcall_suspend_state): Add initializers.
	(save_infcall_suspend_state): Use new.
	(discard_infcall_suspend_state): Use delete.
This commit is contained in:
Tom Tromey 2018-06-14 15:32:46 -07:00
parent 1a3389079d
commit dd848631cb
3 changed files with 19 additions and 11 deletions

View File

@ -1,3 +1,11 @@
2018-09-17 Tom Tromey <tom@tromey.com>
* gdbthread.h (struct thread_suspend_state): Add initializers.
(class thread_info) <suspend>: Remove initializer.
* infrun.c (struct infcall_suspend_state): Add initializers.
(save_infcall_suspend_state): Use new.
(discard_infcall_suspend_state): Use delete.
2018-09-16 Tom Tromey <tom@tromey.com>
* python/python-internal.h (CPYCHECKER_STEALS_REFERENCE_TO_ARG):

View File

@ -155,16 +155,16 @@ struct thread_suspend_state
"signal" command, which overrides "handle nopass". If the signal
should be suppressed, the core will take care of clearing this
before the target is resumed. */
enum gdb_signal stop_signal;
enum gdb_signal stop_signal = GDB_SIGNAL_0;
/* The reason the thread last stopped, if we need to track it
(breakpoint, watchpoint, etc.) */
enum target_stop_reason stop_reason;
enum target_stop_reason stop_reason = TARGET_STOPPED_BY_NO_REASON;
/* The waitstatus for this thread's last event. */
struct target_waitstatus waitstatus;
struct target_waitstatus waitstatus {};
/* If true WAITSTATUS hasn't been handled yet. */
int waitstatus_pending_p;
int waitstatus_pending_p = 0;
/* Record the pc of the thread the last time it stopped. (This is
not the current thread's PC as that may have changed since the
@ -181,7 +181,7 @@ struct thread_suspend_state
- If the thread is running, this is set to -1, to avoid leaving
it with a stale value, to make it easier to catch bugs. */
CORE_ADDR stop_pc;
CORE_ADDR stop_pc = 0;
};
/* Base class for target-specific thread data. */
@ -300,7 +300,7 @@ public:
/* State of inferior thread to restore after GDB is done with an inferior
call. See `struct thread_suspend_state'. */
thread_suspend_state suspend {};
thread_suspend_state suspend;
int current_line = 0;
struct symtab *current_symtab = NULL;

View File

@ -8810,15 +8810,15 @@ struct infcall_suspend_state
struct thread_suspend_state thread_suspend;
/* Other fields: */
readonly_detached_regcache *registers;
readonly_detached_regcache *registers = nullptr;
/* Format of SIGINFO_DATA or NULL if it is not present. */
struct gdbarch *siginfo_gdbarch;
struct gdbarch *siginfo_gdbarch = nullptr;
/* The inferior format depends on SIGINFO_GDBARCH and it has a length of
TYPE_LENGTH (gdbarch_get_siginfo_type ()). For different gdbarch the
content would be invalid. */
gdb_byte *siginfo_data;
gdb_byte *siginfo_data = nullptr;
};
struct infcall_suspend_state *
@ -8850,7 +8850,7 @@ save_infcall_suspend_state (void)
}
}
inf_state = XCNEW (struct infcall_suspend_state);
inf_state = new struct infcall_suspend_state;
if (siginfo_data)
{
@ -8916,7 +8916,7 @@ discard_infcall_suspend_state (struct infcall_suspend_state *inf_state)
{
delete inf_state->registers;
xfree (inf_state->siginfo_data);
xfree (inf_state);
delete inf_state;
}
readonly_detached_regcache *