mirror of
https://github.com/serge1/ELFIO.git
synced 2025-03-24 16:43:32 +00:00
modernize-use-override
This commit is contained in:
parent
4a84319bb8
commit
da4f857e07
@ -101,7 +101,7 @@ template <class T> class elf_header_impl : public elf_header
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
bool load( std::istream& stream )
|
bool load( std::istream& stream ) override
|
||||||
{
|
{
|
||||||
stream.seekg( 0 );
|
stream.seekg( 0 );
|
||||||
stream.read( reinterpret_cast<char*>( &header ), sizeof( header ) );
|
stream.read( reinterpret_cast<char*>( &header ), sizeof( header ) );
|
||||||
@ -110,7 +110,7 @@ template <class T> class elf_header_impl : public elf_header
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
bool save( std::ostream& stream ) const
|
bool save( std::ostream& stream ) const override
|
||||||
{
|
{
|
||||||
stream.seekp( 0 );
|
stream.seekp( 0 );
|
||||||
stream.write( reinterpret_cast<const char*>( &header ),
|
stream.write( reinterpret_cast<const char*>( &header ),
|
||||||
|
@ -85,7 +85,7 @@ template <class T> class section_impl : public section
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
~section_impl() { delete[] data; }
|
~section_impl() override { delete[] data; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Section info functions
|
// Section info functions
|
||||||
@ -100,16 +100,16 @@ template <class T> class section_impl : public section
|
|||||||
ELFIO_GET_ACCESS( Elf64_Addr, address, header.sh_addr );
|
ELFIO_GET_ACCESS( Elf64_Addr, address, header.sh_addr );
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
Elf_Half get_index() const { return index; }
|
Elf_Half get_index() const override { return index; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
std::string get_name() const { return name; }
|
std::string get_name() const override { return name; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void set_name( std::string name ) { this->name = name; }
|
void set_name( std::string name ) override { this->name = name; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void set_address( Elf64_Addr value )
|
void set_address( Elf64_Addr value ) override
|
||||||
{
|
{
|
||||||
header.sh_addr = value;
|
header.sh_addr = value;
|
||||||
header.sh_addr = ( *convertor )( header.sh_addr );
|
header.sh_addr = ( *convertor )( header.sh_addr );
|
||||||
@ -117,13 +117,13 @@ template <class T> class section_impl : public section
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
bool is_address_initialized() const { return is_address_set; }
|
bool is_address_initialized() const override { return is_address_set; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
const char* get_data() const { return data; }
|
const char* get_data() const override { return data; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void set_data( const char* raw_data, Elf_Word size )
|
void set_data( const char* raw_data, Elf_Word size ) override
|
||||||
{
|
{
|
||||||
if ( get_type() != SHT_NOBITS ) {
|
if ( get_type() != SHT_NOBITS ) {
|
||||||
delete[] data;
|
delete[] data;
|
||||||
@ -141,13 +141,13 @@ template <class T> class section_impl : public section
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void set_data( const std::string& str_data )
|
void set_data( const std::string& str_data ) override
|
||||||
{
|
{
|
||||||
return set_data( str_data.c_str(), (Elf_Word)str_data.size() );
|
return set_data( str_data.c_str(), (Elf_Word)str_data.size() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void append_data( const char* raw_data, Elf_Word size )
|
void append_data( const char* raw_data, Elf_Word size ) override
|
||||||
{
|
{
|
||||||
if ( get_type() != SHT_NOBITS ) {
|
if ( get_type() != SHT_NOBITS ) {
|
||||||
if ( get_size() + size < data_size ) {
|
if ( get_size() + size < data_size ) {
|
||||||
@ -173,7 +173,7 @@ template <class T> class section_impl : public section
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void append_data( const std::string& str_data )
|
void append_data( const std::string& str_data ) override
|
||||||
{
|
{
|
||||||
return append_data( str_data.c_str(), (Elf_Word)str_data.size() );
|
return append_data( str_data.c_str(), (Elf_Word)str_data.size() );
|
||||||
}
|
}
|
||||||
@ -184,10 +184,10 @@ template <class T> class section_impl : public section
|
|||||||
ELFIO_GET_SET_ACCESS( Elf64_Off, offset, header.sh_offset );
|
ELFIO_GET_SET_ACCESS( Elf64_Off, offset, header.sh_offset );
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void set_index( Elf_Half value ) { index = value; }
|
void set_index( Elf_Half value ) override { index = value; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void load( std::istream& stream, std::streampos header_offset )
|
void load( std::istream& stream, std::streampos header_offset ) override
|
||||||
{
|
{
|
||||||
std::fill_n( reinterpret_cast<char*>( &header ), sizeof( header ),
|
std::fill_n( reinterpret_cast<char*>( &header ), sizeof( header ),
|
||||||
'\0' );
|
'\0' );
|
||||||
@ -218,7 +218,7 @@ template <class T> class section_impl : public section
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void save( std::ostream& stream,
|
void save( std::ostream& stream,
|
||||||
std::streampos header_offset,
|
std::streampos header_offset,
|
||||||
std::streampos data_offset )
|
std::streampos data_offset ) override
|
||||||
{
|
{
|
||||||
if ( 0 != get_index() ) {
|
if ( 0 != get_index() ) {
|
||||||
header.sh_offset = data_offset;
|
header.sh_offset = data_offset;
|
||||||
@ -250,10 +250,10 @@ template <class T> class section_impl : public section
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
size_t get_stream_size() const { return stream_size; }
|
size_t get_stream_size() const override { return stream_size; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void set_stream_size( size_t value ) { stream_size = value; }
|
void set_stream_size( size_t value ) override { stream_size = value; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
private:
|
private:
|
||||||
|
@ -79,7 +79,7 @@ template <class T> class segment_impl : public segment
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
virtual ~segment_impl() { delete[] data; }
|
~segment_impl() override { delete[] data; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Section info functions
|
// Section info functions
|
||||||
@ -100,13 +100,13 @@ template <class T> class segment_impl : public segment
|
|||||||
void set_stream_size( size_t value ) { stream_size = value; }
|
void set_stream_size( size_t value ) { stream_size = value; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
Elf_Half get_index() const { return index; }
|
Elf_Half get_index() const override { return index; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
const char* get_data() const { return data; }
|
const char* get_data() const override { return data; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
Elf_Half add_section_index( Elf_Half sec_index, Elf_Xword addr_align )
|
Elf_Half add_section_index( Elf_Half sec_index, Elf_Xword addr_align ) override
|
||||||
{
|
{
|
||||||
sections.emplace_back( sec_index );
|
sections.emplace_back( sec_index );
|
||||||
if ( addr_align > get_align() ) {
|
if ( addr_align > get_align() ) {
|
||||||
@ -117,16 +117,16 @@ template <class T> class segment_impl : public segment
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
Elf_Half add_section( section* psec, Elf_Xword addr_align )
|
Elf_Half add_section( section* psec, Elf_Xword addr_align ) override
|
||||||
{
|
{
|
||||||
return add_section_index( psec->get_index(), addr_align );
|
return add_section_index( psec->get_index(), addr_align );
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
Elf_Half get_sections_num() const { return (Elf_Half)sections.size(); }
|
Elf_Half get_sections_num() const override { return (Elf_Half)sections.size(); }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
Elf_Half get_section_index_at( Elf_Half num ) const
|
Elf_Half get_section_index_at( Elf_Half num ) const override
|
||||||
{
|
{
|
||||||
if ( num < sections.size() ) {
|
if ( num < sections.size() ) {
|
||||||
return sections[num];
|
return sections[num];
|
||||||
@ -140,7 +140,7 @@ template <class T> class segment_impl : public segment
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void set_offset( Elf64_Off value )
|
void set_offset( Elf64_Off value ) override
|
||||||
{
|
{
|
||||||
ph.p_offset = value;
|
ph.p_offset = value;
|
||||||
ph.p_offset = ( *convertor )( ph.p_offset );
|
ph.p_offset = ( *convertor )( ph.p_offset );
|
||||||
@ -148,16 +148,16 @@ template <class T> class segment_impl : public segment
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
bool is_offset_initialized() const { return is_offset_set; }
|
bool is_offset_initialized() const override { return is_offset_set; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
const std::vector<Elf_Half>& get_sections() const { return sections; }
|
const std::vector<Elf_Half>& get_sections() const override { return sections; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void set_index( Elf_Half value ) { index = value; }
|
void set_index( Elf_Half value ) override { index = value; }
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void load( std::istream& stream, std::streampos header_offset )
|
void load( std::istream& stream, std::streampos header_offset ) override
|
||||||
{
|
{
|
||||||
|
|
||||||
stream.seekg( 0, stream.end );
|
stream.seekg( 0, stream.end );
|
||||||
@ -188,7 +188,7 @@ template <class T> class segment_impl : public segment
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void save( std::ostream& stream,
|
void save( std::ostream& stream,
|
||||||
std::streampos header_offset,
|
std::streampos header_offset,
|
||||||
std::streampos data_offset )
|
std::streampos data_offset ) override
|
||||||
{
|
{
|
||||||
ph.p_offset = data_offset;
|
ph.p_offset = data_offset;
|
||||||
ph.p_offset = ( *convertor )( ph.p_offset );
|
ph.p_offset = ( *convertor )( ph.p_offset );
|
||||||
|
@ -26,6 +26,15 @@ THE SOFTWARE.
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
|
|
||||||
|
#define ELFIO_GET_ACCESS_DECL( TYPE, NAME ) virtual TYPE get_##NAME() const = 0
|
||||||
|
|
||||||
|
#define ELFIO_SET_ACCESS_DECL( TYPE, NAME ) \
|
||||||
|
virtual void set_##NAME( TYPE value ) = 0
|
||||||
|
|
||||||
|
#define ELFIO_GET_SET_ACCESS_DECL( TYPE, NAME ) \
|
||||||
|
virtual TYPE get_##NAME() const = 0; \
|
||||||
|
virtual void set_##NAME( TYPE value ) = 0
|
||||||
|
|
||||||
#define ELFIO_GET_ACCESS( TYPE, NAME, FIELD ) \
|
#define ELFIO_GET_ACCESS( TYPE, NAME, FIELD ) \
|
||||||
TYPE get_##NAME() const { return ( *convertor )( FIELD ); }
|
TYPE get_##NAME() const { return ( *convertor )( FIELD ); }
|
||||||
|
|
||||||
@ -35,23 +44,14 @@ THE SOFTWARE.
|
|||||||
FIELD = value; \
|
FIELD = value; \
|
||||||
FIELD = ( *convertor )( FIELD ); \
|
FIELD = ( *convertor )( FIELD ); \
|
||||||
}
|
}
|
||||||
#define ELFIO_GET_SET_ACCESS( TYPE, NAME, FIELD ) \
|
#define ELFIO_GET_SET_ACCESS( TYPE, NAME, FIELD ) \
|
||||||
TYPE get_##NAME() const { return ( *convertor )( FIELD ); } \
|
TYPE get_##NAME() const override { return ( *convertor )( FIELD ); } \
|
||||||
void set_##NAME( TYPE value ) \
|
void set_##NAME( TYPE value ) override \
|
||||||
{ \
|
{ \
|
||||||
FIELD = value; \
|
FIELD = value; \
|
||||||
FIELD = ( *convertor )( FIELD ); \
|
FIELD = ( *convertor )( FIELD ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ELFIO_GET_ACCESS_DECL( TYPE, NAME ) virtual TYPE get_##NAME() const = 0
|
|
||||||
|
|
||||||
#define ELFIO_SET_ACCESS_DECL( TYPE, NAME ) \
|
|
||||||
virtual void set_##NAME( TYPE value ) = 0
|
|
||||||
|
|
||||||
#define ELFIO_GET_SET_ACCESS_DECL( TYPE, NAME ) \
|
|
||||||
virtual TYPE get_##NAME() const = 0; \
|
|
||||||
virtual void set_##NAME( TYPE value ) = 0
|
|
||||||
|
|
||||||
namespace ELFIO {
|
namespace ELFIO {
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user