diff options
Diffstat (limited to 'gdb/source.c')
-rw-r--r-- | gdb/source.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/gdb/source.c b/gdb/source.c index 9c54ff2..32099b9 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -300,10 +300,28 @@ set_current_source_symtab_and_line (const symtab_and_line &sal) void clear_current_source_symtab_and_line (program_space *pspace) { - current_source_location *loc = get_source_location (pspace); + current_source_location *loc = current_source_key.get (pspace); + if (loc == nullptr) + return; + loc->set (nullptr, 0); } +/* Reset any information stored about a default file and line to print, if it's + owned by OBJFILE. */ + +void +clear_current_source_symtab_and_line (objfile *objfile) +{ + current_source_location *loc = current_source_key.get (objfile->pspace ()); + if (loc == nullptr) + return; + + if (loc->symtab () != nullptr + && loc->symtab ()->compunit ()->objfile () == objfile) + clear_current_source_symtab_and_line (objfile->pspace ()); +} + /* See source.h. */ void |