From Craig Silverstein: Clean up DWARF line reader code.

This commit is contained in:
Ian Lance Taylor 2007-11-14 18:33:47 +00:00
parent 9a2d698415
commit a18f2bd699
2 changed files with 2 additions and 10 deletions

View File

@ -630,7 +630,7 @@ Sized_dwarf_line_info<size, big_endian>::do_addr2line(unsigned int shndx,
// If we found an exact match, great, otherwise find the last entry
// before the passed-in offset.
if (it->offset > offset)
if (it == offsets->end() || it->offset > offset)
{
if (it == offsets->begin())
return "";
@ -673,10 +673,6 @@ Sized_dwarf_line_info<size, big_endian>::do_addr2line(unsigned int shndx,
// Dwarf_line_info routines.
// Note: this routine instantiates the appropriate
// Sized_dwarf_line_info templates for this config, so we don't have
// to have a separte instantiation section for them.
std::string
Dwarf_line_info::one_addr2line(Object* object,
unsigned int shndx, off_t offset)

View File

@ -72,16 +72,12 @@ class Dwarf_line_info
};
template<int size, bool big_endian>
class Sized_dwarf_line_info
class Sized_dwarf_line_info : public Dwarf_line_info
{
public:
// Initializes a .debug_line reader for a given object file.
Sized_dwarf_line_info(Object* object);
std::string
addr2line(unsigned int shndx, off_t offset)
{ return do_addr2line(shndx, offset); }
private:
std::string
do_addr2line(unsigned int shndx, off_t offset);