diff options
author | Tom Tromey <tom@tromey.com> | 2019-01-16 07:09:55 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-01-17 15:42:26 -0700 |
commit | 604b1bfb46e62d561698397cb5499b487eb0db34 (patch) | |
tree | 7747384711d71ee4b097e47db51457e452100e83 /gdb/objfiles.h | |
parent | f252c6d5dc49cb27838e153e863f16ea7895859e (diff) | |
download | gdb-604b1bfb46e62d561698397cb5499b487eb0db34.zip gdb-604b1bfb46e62d561698397cb5499b487eb0db34.tar.gz gdb-604b1bfb46e62d561698397cb5499b487eb0db34.tar.bz2 |
Simplify minsym iteration
This simplifies the minimal symbol iterator, by using
minimal_symbol_count and just doing a somewhat ordinary array-like
iteration. array_view is nearly usable, except that it is more
convenient for this iterator to return pointers rather than
references.
gdb/ChangeLog
2019-01-16 Tom Tromey <tom@tromey.com>
* objfiles.h (class objfile_msymbols) <iterator>: Change argument
type. Remove no-argument constructor.
<iterator::operator++>: Simplify.
<begin>: Update.
<end>: Use minimal_symbol_count.
Diffstat (limited to 'gdb/objfiles.h')
-rw-r--r-- | gdb/objfiles.h | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/gdb/objfiles.h b/gdb/objfiles.h index 5299a3c..2e0fad6 100644 --- a/gdb/objfiles.h +++ b/gdb/objfiles.h @@ -591,20 +591,11 @@ public: typedef std::forward_iterator_tag iterator_category; typedef int difference_type; - explicit iterator (struct objfile *objfile) - : m_msym (objfile->per_bfd->msymbols) + explicit iterator (struct minimal_symbol *msym) + : m_msym (msym) { - /* Make sure to properly handle the case where there are no - minsyms. */ - if (MSYMBOL_LINKAGE_NAME (m_msym) == nullptr) - m_msym = nullptr; } - iterator () - : m_msym (nullptr) - { - } - value_type operator* () const { return m_msym; @@ -622,12 +613,7 @@ public: self_type &operator++ () { - if (m_msym != nullptr) - { - ++m_msym; - if (MSYMBOL_LINKAGE_NAME (m_msym) == nullptr) - m_msym = nullptr; - } + ++m_msym; return *this; } @@ -637,12 +623,13 @@ public: iterator begin () const { - return iterator (m_objfile); + return iterator (m_objfile->per_bfd->msymbols); } iterator end () const { - return iterator (); + return iterator (m_objfile->per_bfd->msymbols + + m_objfile->per_bfd->minimal_symbol_count); } private: |