From 4867f990df59cbde08a2e09471f1ca7c1404a14b Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 30 May 2013 17:11:38 +0000 Subject: [PATCH] fix varobj.c c_value_of_root is missing a call to do_cleanups at one return. This fixes the problem by removing that return and letting control fall through. * varobj.c (c_value_of_root): Call do_cleanups along all return paths. --- gdb/ChangeLog | 5 +++++ gdb/varobj.c | 4 +--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e344572..b8e5f99 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2013-05-30 Tom Tromey + * varobj.c (c_value_of_root): Call do_cleanups along all + return paths. + +2013-05-30 Tom Tromey + * tracepoint.c (trace_dump_command): Unconditionally call do_cleanups. diff --git a/gdb/varobj.c b/gdb/varobj.c index 70ed28f..d4fa6ba 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -3474,13 +3474,11 @@ c_value_of_root (struct varobj **var_handle) { new_val = evaluate_expression (var->root->exp); } - - return new_val; } do_cleanups (back_to); - return NULL; + return new_val; } static struct value * -- 2.7.4