forked from Imagelibrary/binutils-gdb
Return unique_xmalloc_ptr for generate_c_for_variable_locations
This patch eliminates two cleanups in compile/ by changing
generate_c_for_variable_locations so that it returns a unique_ptr.
gdb/ChangeLog:
* compile/compile-c-support.c (c_compute_program): Use
unique_xmalloc_ptr to eliminate cleanup.
* compile/compile-c-symbols.c (generate_c_for_variable_locations):
Return a unique_xmalloc_ptr and eliminate cleanup.
* compile/compile-internal.h (generate_c_for_variable_locations):
Return unique_xmalloc_ptr and update description.
This commit is contained in:
@@ -351,17 +351,15 @@ c_compute_program (struct compile_instance *inst,
|
||||
and the user's code may only refer to globals. */
|
||||
if (inst->scope != COMPILE_I_RAW_SCOPE)
|
||||
{
|
||||
unsigned char *registers_used;
|
||||
int i;
|
||||
|
||||
/* Generate the code to compute variable locations, but do it
|
||||
before generating the function header, so we can define the
|
||||
register struct before the function body. This requires a
|
||||
temporary stream. */
|
||||
registers_used = generate_c_for_variable_locations (context,
|
||||
var_stream, gdbarch,
|
||||
expr_block, expr_pc);
|
||||
make_cleanup (xfree, registers_used);
|
||||
gdb::unique_xmalloc_ptr<unsigned char> registers_used
|
||||
= generate_c_for_variable_locations (context, var_stream, gdbarch,
|
||||
expr_block, expr_pc);
|
||||
|
||||
buf.puts ("typedef unsigned int"
|
||||
" __attribute__ ((__mode__(__pointer__)))"
|
||||
@@ -382,7 +380,7 @@ c_compute_program (struct compile_instance *inst,
|
||||
mode, mode);
|
||||
}
|
||||
|
||||
generate_register_struct (&buf, gdbarch, registers_used);
|
||||
generate_register_struct (&buf, gdbarch, registers_used.get ());
|
||||
}
|
||||
|
||||
add_code_header (inst->scope, &buf);
|
||||
|
||||
Reference in New Issue
Block a user