* breakpoint.c (bpstat_check_breakpoint_conditions): Use
value_mark and value_free_to_mark. * objfiles.c (free_objfile): Call objfile_free_data before freeing the BFD.
This commit is contained in:
parent
09e8c3bf89
commit
c5bc3a77a2
|
@ -1,3 +1,10 @@
|
||||||
|
2009-03-11 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* breakpoint.c (bpstat_check_breakpoint_conditions): Use
|
||||||
|
value_mark and value_free_to_mark.
|
||||||
|
* objfiles.c (free_objfile): Call objfile_free_data before
|
||||||
|
freeing the BFD.
|
||||||
|
|
||||||
2009-03-10 Hui Zhu <teawater@gmail.com>
|
2009-03-10 Hui Zhu <teawater@gmail.com>
|
||||||
|
|
||||||
* disasm.c (gdb_disassembly): Remove unused argument
|
* disasm.c (gdb_disassembly): Remove unused argument
|
||||||
|
|
|
@ -2882,6 +2882,13 @@ bpstat_check_breakpoint_conditions (bpstat bs, ptid_t ptid)
|
||||||
|
|
||||||
if (bl->cond && bl->owner->disposition != disp_del_at_next_stop)
|
if (bl->cond && bl->owner->disposition != disp_del_at_next_stop)
|
||||||
{
|
{
|
||||||
|
/* We use value_mark and value_free_to_mark because it could
|
||||||
|
be a long time before we return to the command level and
|
||||||
|
call free_all_values. We can't call free_all_values
|
||||||
|
because we might be in the middle of evaluating a
|
||||||
|
function call. */
|
||||||
|
struct value *mark = value_mark ();
|
||||||
|
|
||||||
/* Need to select the frame, with all that implies
|
/* Need to select the frame, with all that implies
|
||||||
so that the conditions will have the right context. */
|
so that the conditions will have the right context. */
|
||||||
select_frame (get_current_frame ());
|
select_frame (get_current_frame ());
|
||||||
|
@ -2890,7 +2897,7 @@ bpstat_check_breakpoint_conditions (bpstat bs, ptid_t ptid)
|
||||||
"Error in testing breakpoint condition:\n",
|
"Error in testing breakpoint condition:\n",
|
||||||
RETURN_MASK_ALL);
|
RETURN_MASK_ALL);
|
||||||
/* FIXME-someday, should give breakpoint # */
|
/* FIXME-someday, should give breakpoint # */
|
||||||
free_all_values ();
|
value_free_to_mark (mark);
|
||||||
}
|
}
|
||||||
if (bl->cond && value_is_zero)
|
if (bl->cond && value_is_zero)
|
||||||
{
|
{
|
||||||
|
|
|
@ -422,6 +422,9 @@ free_objfile (struct objfile *objfile)
|
||||||
(*objfile->sf->sym_finish) (objfile);
|
(*objfile->sf->sym_finish) (objfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Discard any data modules have associated with the objfile. */
|
||||||
|
objfile_free_data (objfile);
|
||||||
|
|
||||||
/* We always close the bfd, unless the OBJF_KEEPBFD flag is set. */
|
/* We always close the bfd, unless the OBJF_KEEPBFD flag is set. */
|
||||||
|
|
||||||
if (objfile->obfd != NULL && !(objfile->flags & OBJF_KEEPBFD))
|
if (objfile->obfd != NULL && !(objfile->flags & OBJF_KEEPBFD))
|
||||||
|
@ -476,7 +479,6 @@ free_objfile (struct objfile *objfile)
|
||||||
|
|
||||||
/* The last thing we do is free the objfile struct itself. */
|
/* The last thing we do is free the objfile struct itself. */
|
||||||
|
|
||||||
objfile_free_data (objfile);
|
|
||||||
if (objfile->name != NULL)
|
if (objfile->name != NULL)
|
||||||
{
|
{
|
||||||
xfree (objfile->name);
|
xfree (objfile->name);
|
||||||
|
|
Loading…
Reference in New Issue