diff options
author | Tom Tromey <tromey@redhat.com> | 2009-08-11 20:36:49 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2009-08-11 20:36:49 +0000 |
commit | 4a22739830aea21ec5de7756676a9ce7c3821001 (patch) | |
tree | d940da935e83fa6c33d7d8b5a1a7a66db52667b1 /gdb/dwarf2-frame.c | |
parent | 0d8f9b2ced3015b9857a2456dcde76e04f18121f (diff) | |
download | gdb-4a22739830aea21ec5de7756676a9ce7c3821001.zip gdb-4a22739830aea21ec5de7756676a9ce7c3821001.tar.gz gdb-4a22739830aea21ec5de7756676a9ce7c3821001.tar.bz2 |
* dwarf2loc.c (dwarf2_evaluate_loc_desc): Make a cleanup.
(dwarf2_loc_desc_needs_frame): Likewise.
* dwarf2expr.h (make_cleanup_free_dwarf_expr_context): Declare.
* dwarf2expr.c (free_dwarf_expr_context_cleanup): New function.
(make_cleanup_free_dwarf_expr_context): Likewise.
* dwarf2-frame.c (execute_stack_op): Make a cleanup.
Diffstat (limited to 'gdb/dwarf2-frame.c')
-rw-r--r-- | gdb/dwarf2-frame.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c index 0f6da40..427f58f 100644 --- a/gdb/dwarf2-frame.c +++ b/gdb/dwarf2-frame.c @@ -352,8 +352,11 @@ execute_stack_op (gdb_byte *exp, ULONGEST len, int addr_size, { struct dwarf_expr_context *ctx; CORE_ADDR result; + struct cleanup *old_chain; ctx = new_dwarf_expr_context (); + old_chain = make_cleanup_free_dwarf_expr_context (ctx); + ctx->gdbarch = get_frame_arch (this_frame); ctx->addr_size = addr_size; ctx->baton = this_frame; @@ -369,7 +372,7 @@ execute_stack_op (gdb_byte *exp, ULONGEST len, int addr_size, if (ctx->in_reg) result = read_reg (this_frame, result); - free_dwarf_expr_context (ctx); + do_cleanups (old_chain); return result; } |