diff --git a/Libraries/LibDebug/DebugInfo.cpp b/Libraries/LibDebug/DebugInfo.cpp index 7822c30cb8..6ceb72b455 100644 --- a/Libraries/LibDebug/DebugInfo.cpp +++ b/Libraries/LibDebug/DebugInfo.cpp @@ -106,8 +106,7 @@ void DebugInfo::prepare_lines() if (section.is_undefined()) return; - auto buffer = section.wrapping_byte_buffer(); - InputMemoryStream stream { buffer }; + InputMemoryStream stream { section.bytes() }; Vector all_lines; while (!stream.eof()) { diff --git a/Libraries/LibDebug/Dwarf/DwarfInfo.cpp b/Libraries/LibDebug/Dwarf/DwarfInfo.cpp index b17001e359..d2fb3d98e6 100644 --- a/Libraries/LibDebug/Dwarf/DwarfInfo.cpp +++ b/Libraries/LibDebug/Dwarf/DwarfInfo.cpp @@ -40,17 +40,17 @@ DwarfInfo::DwarfInfo(NonnullRefPtr elf) populate_compilation_units(); } -ByteBuffer DwarfInfo::section_data(const String& section_name) +ReadonlyBytes DwarfInfo::section_data(const String& section_name) const { auto section = m_elf->image().lookup_section(section_name); if (section.is_undefined()) return {}; - return section.wrapping_byte_buffer(); + return section.bytes(); } void DwarfInfo::populate_compilation_units() { - if (m_debug_info_data.is_null()) + if (!m_debug_info_data.data()) return; InputMemoryStream stream { m_debug_info_data }; diff --git a/Libraries/LibDebug/Dwarf/DwarfInfo.h b/Libraries/LibDebug/Dwarf/DwarfInfo.h index 96dcd2ad5a..0a0222a78b 100644 --- a/Libraries/LibDebug/Dwarf/DwarfInfo.h +++ b/Libraries/LibDebug/Dwarf/DwarfInfo.h @@ -40,9 +40,9 @@ class DwarfInfo : public RefCounted { public: static NonnullRefPtr create(NonnullRefPtr elf) { return adopt(*new DwarfInfo(move(elf))); } - const ByteBuffer& debug_info_data() const { return m_debug_info_data; } - const ByteBuffer& abbreviation_data() const { return m_abbreviation_data; } - const ByteBuffer& debug_strings_data() const { return m_debug_strings_data; } + ReadonlyBytes debug_info_data() const { return m_debug_info_data; } + ReadonlyBytes abbreviation_data() const { return m_abbreviation_data; } + ReadonlyBytes debug_strings_data() const { return m_debug_strings_data; } template void for_each_compilation_unit(Callback) const; @@ -51,12 +51,12 @@ private: explicit DwarfInfo(NonnullRefPtr elf); void populate_compilation_units(); - ByteBuffer section_data(const String& section_name); + ReadonlyBytes section_data(const String& section_name) const; NonnullRefPtr m_elf; - ByteBuffer m_debug_info_data; - ByteBuffer m_abbreviation_data; - ByteBuffer m_debug_strings_data; + ReadonlyBytes m_debug_info_data; + ReadonlyBytes m_abbreviation_data; + ReadonlyBytes m_debug_strings_data; Vector m_compilation_units; }; diff --git a/Libraries/LibELF/Image.h b/Libraries/LibELF/Image.h index fb45e0e562..4cb941c019 100644 --- a/Libraries/LibELF/Image.h +++ b/Libraries/LibELF/Image.h @@ -132,7 +132,7 @@ public: unsigned entry_count() const { return !entry_size() ? 0 : size() / entry_size(); } u32 address() const { return m_section_header.sh_addr; } const char* raw_data() const { return m_image.raw_data(m_section_header.sh_offset); } - ByteBuffer wrapping_byte_buffer() { return ByteBuffer::wrap(const_cast(raw_data()), size()); } + ReadonlyBytes bytes() const { return { raw_data(), size() }; } bool is_undefined() const { return m_section_index == SHN_UNDEF; } const RelocationSection relocations() const; u32 flags() const { return m_section_header.sh_flags; }