diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2017-09-14 15:57:01 +0200 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2017-09-14 15:57:01 +0200 |
commit | 1e467161932b6385b51d0bd365a91cf205b399b9 (patch) | |
tree | 5863f70edf852de7f805628f810cc7d63ea77bf7 /Makefile.tpl | |
parent | 4d465c689a8fb27212ef358d0aee89d60dee69a6 (diff) | |
download | gdb-1e467161932b6385b51d0bd365a91cf205b399b9.zip gdb-1e467161932b6385b51d0bd365a91cf205b399b9.tar.gz gdb-1e467161932b6385b51d0bd365a91cf205b399b9.tar.bz2 |
Make dwarf_expr_piece::pieces an std::vector
Change the manually managed array dwarf_expr_piece::piece with an
std::vector. After passing the pieces array to allocate_piece_closure,
dwarf2_evaluate_loc_desc_full doesn't need that data anymore. We can
therefore move the content of the vector to avoid copying it.
Reg-tested on the buildbot.
gdb/ChangeLog:
* dwarf2expr.h (struct dwarf_expr_piece): Move up.
(struct dwarf_expr_context) <n_pieces>: Remove.
<pieces>: Change type to std::vector.
* dwarf2expr.c (dwarf_expr_context::dwarf_expr_context): Adjust.
(dwarf_expr_context::~dwarf_expr_context): Don't manually free
pieces.
(dwarf_expr_context::add_piece): Adjust.
* dwarf2loc.c (struct piece_closure): Initialize fields.
<n_pieces>: Remove.
<pieces>: Change type to std::vector.
(allocate_piece_closure): Adjust, change parameter to
std::vector rvalue and std::move it to piece_closure.
(rw_pieced_value): Adjust.
(check_pieced_synthetic_pointer): Adjust.
(indirect_synthetic_pointer): Adjust.
(coerce_pieced_ref): Adjust.
(free_pieced_value_closure): Adjust. Use delete to free
piece_closure.
(dwarf2_evaluate_loc_desc_full): Adjust. std::move ctx.pieces
to allocate_piece_closure.
(dwarf2_loc_desc_get_symbol_read_needs): Adjust.
Diffstat (limited to 'Makefile.tpl')
0 files changed, 0 insertions, 0 deletions