mirror of
https://github.com/serge1/ELFIO.git
synced 2025-03-16 19:21:07 +00:00
Names and tabs refactoring
This commit is contained in:
parent
013cc2f9db
commit
858b7a3b70
@ -61,10 +61,10 @@ get_##FNAME() const \
|
|||||||
} \
|
} \
|
||||||
void \
|
void \
|
||||||
set_##FNAME( TYPE val ) \
|
set_##FNAME( TYPE val ) \
|
||||||
{ \
|
{ \
|
||||||
if (header) { \
|
if (header) { \
|
||||||
header->set_##FNAME( val ); \
|
header->set_##FNAME( val ); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
|
|
||||||
namespace ELFIO {
|
namespace ELFIO {
|
||||||
@ -490,13 +490,13 @@ class elfio
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
bool save_header( std::ostream& f )
|
bool save_header( std::ostream& stream )
|
||||||
{
|
{
|
||||||
return header->save( f );
|
return header->save( stream );
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
bool save_sections( std::ostream& f )
|
bool save_sections( std::ostream& stream )
|
||||||
{
|
{
|
||||||
for ( unsigned int i = 0; i < sections_.size(); ++i ) {
|
for ( unsigned int i = 0; i < sections_.size(); ++i ) {
|
||||||
section *sec = sections_.at(i);
|
section *sec = sections_.at(i);
|
||||||
@ -505,13 +505,13 @@ class elfio
|
|||||||
(std::streamoff)header->get_sections_offset() +
|
(std::streamoff)header->get_sections_offset() +
|
||||||
header->get_section_entry_size() * sec->get_index();
|
header->get_section_entry_size() * sec->get_index();
|
||||||
|
|
||||||
sec->save(f,headerPosition,sec->get_offset());
|
sec->save(stream,headerPosition,sec->get_offset());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
bool save_segments( std::ostream& f )
|
bool save_segments( std::ostream& stream )
|
||||||
{
|
{
|
||||||
for ( unsigned int i = 0; i < segments_.size(); ++i ) {
|
for ( unsigned int i = 0; i < segments_.size(); ++i ) {
|
||||||
segment *seg = segments_.at(i);
|
segment *seg = segments_.at(i);
|
||||||
@ -519,7 +519,7 @@ class elfio
|
|||||||
std::streampos headerPosition = header->get_segments_offset() +
|
std::streampos headerPosition = header->get_segments_offset() +
|
||||||
header->get_segment_entry_size()*seg->get_index();
|
header->get_segment_entry_size()*seg->get_index();
|
||||||
|
|
||||||
seg->save( f, headerPosition, seg->get_offset() );
|
seg->save( stream, headerPosition, seg->get_offset() );
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -49,12 +49,12 @@ class section
|
|||||||
size_t stream_size;
|
size_t stream_size;
|
||||||
size_t get_stream_size() const
|
size_t get_stream_size() const
|
||||||
{
|
{
|
||||||
return stream_size;
|
return stream_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_stream_size(size_t value)
|
void set_stream_size(size_t value)
|
||||||
{
|
{
|
||||||
stream_size = value;
|
stream_size = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual const char* get_data() const = 0;
|
virtual const char* get_data() const = 0;
|
||||||
@ -67,9 +67,9 @@ class section
|
|||||||
ELFIO_SET_ACCESS_DECL( Elf64_Off, offset );
|
ELFIO_SET_ACCESS_DECL( Elf64_Off, offset );
|
||||||
ELFIO_SET_ACCESS_DECL( Elf_Half, index );
|
ELFIO_SET_ACCESS_DECL( Elf_Half, index );
|
||||||
|
|
||||||
virtual void load( std::istream& f,
|
virtual void load( std::istream& stream,
|
||||||
std::streampos header_offset ) = 0;
|
std::streampos header_offset ) = 0;
|
||||||
virtual void save( std::ostream& f,
|
virtual void save( std::ostream& stream,
|
||||||
std::streampos header_offset,
|
std::streampos header_offset,
|
||||||
std::streampos data_offset ) = 0;
|
std::streampos data_offset ) = 0;
|
||||||
virtual bool is_address_initialized() const = 0;
|
virtual bool is_address_initialized() const = 0;
|
||||||
@ -235,33 +235,34 @@ class section_impl : public section
|
|||||||
{
|
{
|
||||||
std::fill_n( reinterpret_cast<char*>( &header ), sizeof( header ), '\0' );
|
std::fill_n( reinterpret_cast<char*>( &header ), sizeof( header ), '\0' );
|
||||||
|
|
||||||
stream.seekg ( 0, stream.end );
|
stream.seekg ( 0, stream.end );
|
||||||
set_stream_size ( stream.tellg() );
|
set_stream_size ( stream.tellg() );
|
||||||
|
|
||||||
stream.seekg( header_offset );
|
stream.seekg( header_offset );
|
||||||
stream.read( reinterpret_cast<char*>( &header ), sizeof( header ) );
|
stream.read( reinterpret_cast<char*>( &header ), sizeof( header ) );
|
||||||
|
|
||||||
|
|
||||||
Elf_Xword size = get_size();
|
Elf_Xword size = get_size();
|
||||||
if ( 0 == data && SHT_NULL != get_type() && SHT_NOBITS != get_type() && size < get_stream_size()) {
|
if ( 0 == data && SHT_NULL != get_type() && SHT_NOBITS != get_type() && size < get_stream_size()) {
|
||||||
try {
|
try {
|
||||||
data = new char[size + 1];
|
data = new char[size + 1];
|
||||||
} catch (const std::bad_alloc&) {
|
} catch (const std::bad_alloc&) {
|
||||||
data = 0;
|
data = 0;
|
||||||
data_size = 0;
|
data_size = 0;
|
||||||
}
|
}
|
||||||
if ( 0 != size ) {
|
|
||||||
stream.seekg( (*convertor)( header.sh_offset ) );
|
if ( 0 != size ) {
|
||||||
stream.read( data, size );
|
stream.seekg( (*convertor)( header.sh_offset ) );
|
||||||
data[size] = 0; //ensure data is ended with 0 to avoid oob read
|
stream.read( data, size );
|
||||||
data_size = size;
|
data[size] = 0; //ensure data is ended with 0 to avoid oob read
|
||||||
}
|
data_size = size;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void
|
void
|
||||||
save( std::ostream& f,
|
save( std::ostream& stream,
|
||||||
std::streampos header_offset,
|
std::streampos header_offset,
|
||||||
std::streampos data_offset )
|
std::streampos data_offset )
|
||||||
{
|
{
|
||||||
@ -270,10 +271,10 @@ class section_impl : public section
|
|||||||
header.sh_offset = (*convertor)( header.sh_offset );
|
header.sh_offset = (*convertor)( header.sh_offset );
|
||||||
}
|
}
|
||||||
|
|
||||||
save_header( f, header_offset );
|
save_header( stream, header_offset );
|
||||||
if ( get_type() != SHT_NOBITS && get_type() != SHT_NULL &&
|
if ( get_type() != SHT_NOBITS && get_type() != SHT_NULL &&
|
||||||
get_size() != 0 && data != 0 ) {
|
get_size() != 0 && data != 0 ) {
|
||||||
save_data( f, data_offset );
|
save_data( stream, data_offset );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,20 +282,20 @@ class section_impl : public section
|
|||||||
private:
|
private:
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void
|
void
|
||||||
save_header( std::ostream& f,
|
save_header( std::ostream& stream,
|
||||||
std::streampos header_offset ) const
|
std::streampos header_offset ) const
|
||||||
{
|
{
|
||||||
f.seekp( header_offset );
|
stream.seekp( header_offset );
|
||||||
f.write( reinterpret_cast<const char*>( &header ), sizeof( header ) );
|
stream.write( reinterpret_cast<const char*>( &header ), sizeof( header ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void
|
void
|
||||||
save_data( std::ostream& f,
|
save_data( std::ostream& stream,
|
||||||
std::streampos data_offset ) const
|
std::streampos data_offset ) const
|
||||||
{
|
{
|
||||||
f.seekp( data_offset );
|
stream.seekp( data_offset );
|
||||||
f.write( get_data(), get_size() );
|
stream.write( get_data(), get_size() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
@ -57,7 +57,7 @@ class segment
|
|||||||
|
|
||||||
virtual const std::vector<Elf_Half>& get_sections() const = 0;
|
virtual const std::vector<Elf_Half>& get_sections() const = 0;
|
||||||
virtual void load( std::istream& stream, std::streampos header_offset ) = 0;
|
virtual void load( std::istream& stream, std::streampos header_offset ) = 0;
|
||||||
virtual void save( std::ostream& f, std::streampos header_offset,
|
virtual void save( std::ostream& stream, std::streampos header_offset,
|
||||||
std::streampos data_offset ) = 0;
|
std::streampos data_offset ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -192,8 +192,8 @@ class segment_impl : public segment
|
|||||||
std::streampos header_offset )
|
std::streampos header_offset )
|
||||||
{
|
{
|
||||||
|
|
||||||
stream.seekg ( 0, stream.end );
|
stream.seekg ( 0, stream.end );
|
||||||
set_stream_size ( stream.tellg() );
|
set_stream_size ( stream.tellg() );
|
||||||
|
|
||||||
stream.seekg( header_offset );
|
stream.seekg( header_offset );
|
||||||
stream.read( reinterpret_cast<char*>( &ph ), sizeof( ph ) );
|
stream.read( reinterpret_cast<char*>( &ph ), sizeof( ph ) );
|
||||||
@ -202,31 +202,34 @@ class segment_impl : public segment
|
|||||||
if ( PT_NULL != get_type() && 0 != get_file_size() ) {
|
if ( PT_NULL != get_type() && 0 != get_file_size() ) {
|
||||||
stream.seekg( (*convertor)( ph.p_offset ) );
|
stream.seekg( (*convertor)( ph.p_offset ) );
|
||||||
Elf_Xword size = get_file_size();
|
Elf_Xword size = get_file_size();
|
||||||
if ( size > get_stream_size() ) {
|
|
||||||
data = 0;
|
if ( size > get_stream_size() ) {
|
||||||
} else {
|
data = 0;
|
||||||
try {
|
}
|
||||||
data = new char[size + 1];
|
else {
|
||||||
} catch (const std::bad_alloc&) {
|
try {
|
||||||
data = 0;
|
data = new char[size + 1];
|
||||||
}
|
} catch (const std::bad_alloc&) {
|
||||||
if ( 0 != data ) {
|
data = 0;
|
||||||
stream.read( data, size );
|
}
|
||||||
data[size] = 0;
|
|
||||||
}
|
if ( 0 != data ) {
|
||||||
}
|
stream.read( data, size );
|
||||||
|
data[size] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void save( std::ostream& f,
|
void save( std::ostream& stream,
|
||||||
std::streampos header_offset,
|
std::streampos header_offset,
|
||||||
std::streampos data_offset )
|
std::streampos data_offset )
|
||||||
{
|
{
|
||||||
ph.p_offset = data_offset;
|
ph.p_offset = data_offset;
|
||||||
ph.p_offset = (*convertor)(ph.p_offset);
|
ph.p_offset = (*convertor)(ph.p_offset);
|
||||||
f.seekp( header_offset );
|
stream.seekp( header_offset );
|
||||||
f.write( reinterpret_cast<const char*>( &ph ), sizeof( ph ) );
|
stream.write( reinterpret_cast<const char*>( &ph ), sizeof( ph ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user