aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2-frame.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2011-05-13 15:44:49 +0000
committerTom Tromey <tromey@redhat.com>2011-05-13 15:44:49 +0000
commit72fc29ff1236177b2be5f702ed40c7d327897e7e (patch)
treebce50db16c82b81493f308495b856e7364cefcee /gdb/dwarf2-frame.c
parent3ac5406bdb24ecbb504bda4c539a517fc51122e8 (diff)
downloadgdb-72fc29ff1236177b2be5f702ed40c7d327897e7e.zip
gdb-72fc29ff1236177b2be5f702ed40c7d327897e7e.tar.gz
gdb-72fc29ff1236177b2be5f702ed40c7d327897e7e.tar.bz2
* utils.c (do_value_free): New function.
(make_cleanup_value_free): Likewise. * dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Handle value freeing correctly. (dwarf2_loc_desc_needs_frame): Call make_cleanup_value_free_to_mark. * dwarf2expr.h (struct dwarf_expr_context) <mark>: Remove field. * dwarf2expr.c (free_dwarf_expr_context): Don't call value_free_to_mark. (new_dwarf_expr_context): Don't call value_mark. * dwarf2-frame.c (execute_stack_op): Call make_cleanup_value_free_to_mark. * defs.h (make_cleanup_value_free): Declare.
Diffstat (limited to 'gdb/dwarf2-frame.c')
-rw-r--r--gdb/dwarf2-frame.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c
index 4e4e6d9..fe48713 100644
--- a/gdb/dwarf2-frame.c
+++ b/gdb/dwarf2-frame.c
@@ -402,6 +402,7 @@ execute_stack_op (const gdb_byte *exp, ULONGEST len, int addr_size,
ctx = new_dwarf_expr_context ();
old_chain = make_cleanup_free_dwarf_expr_context (ctx);
+ make_cleanup_value_free_to_mark (value_mark ());
ctx->gdbarch = get_frame_arch (this_frame);
ctx->addr_size = addr_size;