diff options
Diffstat (limited to 'lib/ReaderWriter/MachO/SectCreateFile.h')
-rw-r--r-- | lib/ReaderWriter/MachO/SectCreateFile.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/lib/ReaderWriter/MachO/SectCreateFile.h b/lib/ReaderWriter/MachO/SectCreateFile.h index 2e6e97c5433f..49e65f63151d 100644 --- a/lib/ReaderWriter/MachO/SectCreateFile.h +++ b/lib/ReaderWriter/MachO/SectCreateFile.h @@ -31,6 +31,8 @@ public: _combinedName((segName + "/" + sectName).str()), _content(std::move(content)) {} + ~SectCreateAtom() override = default; + uint64_t size() const override { return _content->getBufferSize(); } Scope scope() const override { return scopeGlobal; } @@ -59,7 +61,7 @@ public: std::unique_ptr<MemoryBuffer> _content; }; - SectCreateFile() : File("sectcreate", kindObject) {} + SectCreateFile() : File("sectcreate", kindSectCreateObject) {} void addSection(StringRef seg, StringRef sect, std::unique_ptr<MemoryBuffer> content) { @@ -67,22 +69,29 @@ public: new (allocator()) SectCreateAtom(*this, seg, sect, std::move(content))); } - const AtomVector<DefinedAtom> &defined() const override { + const AtomRange<DefinedAtom> defined() const override { return _definedAtoms; } - const AtomVector<UndefinedAtom> &undefined() const override { + const AtomRange<UndefinedAtom> undefined() const override { return _noUndefinedAtoms; } - const AtomVector<SharedLibraryAtom> &sharedLibrary() const override { + const AtomRange<SharedLibraryAtom> sharedLibrary() const override { return _noSharedLibraryAtoms; } - const AtomVector<AbsoluteAtom> &absolute() const override { + const AtomRange<AbsoluteAtom> absolute() const override { return _noAbsoluteAtoms; } + void clearAtoms() override { + _definedAtoms.clear(); + _noUndefinedAtoms.clear(); + _noSharedLibraryAtoms.clear(); + _noAbsoluteAtoms.clear(); + } + private: AtomVector<DefinedAtom> _definedAtoms; }; |