Change maybe_disable_address_space_randomization to a class

This changes maybe_disable_address_space_randomization to be an RAII
class, rather than having it return a cleanup.

Regression tested by the buildbot.

ChangeLog
2017-11-26  Tom Tromey  <tom@tromey.com>

	* nat/linux-personality.h (class
	maybe_disable_address_space_randomization): New class.
	(maybe_disable_address_space_randomization): Don't declare
	function.
	* nat/linux-personality.c (restore_personality)
	(make_disable_asr_cleanup): Remove.
	(maybe_disable_address_space_randomization): Now a constructor.
	(~maybe_disable_address_space_randomization): New destructor.
	* linux-nat.c (linux_nat_create_inferior): Update.

gdbserver/ChangeLog
2017-11-26  Tom Tromey  <tom@tromey.com>

	* linux-low.c (linux_create_inferior): Update.
This commit is contained in:
Tom Tromey
2017-11-22 09:30:21 -07:00
parent 44287fd890
commit 41272101db
6 changed files with 72 additions and 67 deletions

View File

@@ -1,3 +1,7 @@
2017-11-26 Tom Tromey <tom@tromey.com>
* linux-low.c (linux_create_inferior): Update.
2017-11-24 Ulrich Weigand <uweigand@de.ibm.com>
* spu-low.c (spu_create_inferior): Fix typo in argument name.

View File

@@ -998,16 +998,17 @@ linux_create_inferior (const char *program,
struct lwp_info *new_lwp;
int pid;
ptid_t ptid;
struct cleanup *restore_personality
= maybe_disable_address_space_randomization (disable_randomization);
std::string str_program_args = stringify_argv (program_args);
pid = fork_inferior (program,
str_program_args.c_str (),
get_environ ()->envp (), linux_ptrace_fun,
NULL, NULL, NULL, NULL);
{
maybe_disable_address_space_randomization restore_personality
(disable_randomization);
std::string str_program_args = stringify_argv (program_args);
do_cleanups (restore_personality);
pid = fork_inferior (program,
str_program_args.c_str (),
get_environ ()->envp (), linux_ptrace_fun,
NULL, NULL, NULL, NULL);
}
linux_add_process (pid, 0);