A couple return paths in frapy_read_var were missing do_cleanups calls.
* python/py-frame.c (frapy_read_var): Call do_cleanups along
all return paths.
+2013-05-30 Tom Tromey <tromey@redhat.com>
+
+ * python/py-frame.c (frapy_read_var): Call do_cleanups along
+ all return paths.
+
2013-05-30 Tom Tromey <tromey@redhat.com>
* python/py-breakpoint.c (bppy_get_commands): Call do_cleanups
{
PyErr_SetString (PyExc_RuntimeError,
_("Second argument must be block."));
+ do_cleanups (cleanup);
return NULL;
}
}
block = get_frame_block (frame, NULL);
var = lookup_symbol (var_name, block, VAR_DOMAIN, NULL);
}
- GDB_PY_HANDLE_EXCEPTION (except);
+ if (except.reason < 0)
+ {
+ do_cleanups (cleanup);
+ GDB_PY_HANDLE_EXCEPTION (except);
+ }
if (!var)
{