using namespace object;
-Reader::~Reader() {}
-
Error COFFReader::readExecutableHeaders(Object &Obj) const {
const dos_header *DH = COFFObj.getDOSHeader();
Obj.Is64 = COFFObj.is64();
using object::COFFObjectFile;
-class Reader {
-public:
- virtual ~Reader();
- virtual Expected<std::unique_ptr<Object>> create() const = 0;
-};
-
-class COFFReader : public Reader {
+class COFFReader {
const COFFObjectFile &COFFObj;
Error readExecutableHeaders(Object &Obj) const;
public:
explicit COFFReader(const COFFObjectFile &O) : COFFObj(O) {}
- Expected<std::unique_ptr<Object>> create() const override;
+ Expected<std::unique_ptr<Object>> create() const;
};
} // end namespace coff
using namespace object;
using namespace COFF;
-Writer::~Writer() {}
-
Error COFFWriter::finalizeRelocTargets() {
for (Section &Sec : Obj.Sections) {
for (Relocation &R : Sec.Relocs) {
struct Object;
-class Writer {
-protected:
+class COFFWriter {
Object &Obj;
Buffer &Buf;
-public:
- virtual ~Writer();
- virtual Error write() = 0;
-
- Writer(Object &O, Buffer &B) : Obj(O), Buf(B) {}
-};
-
-class COFFWriter : public Writer {
size_t FileSize;
size_t FileAlignment;
size_t SizeOfInitializedData;
public:
virtual ~COFFWriter() {}
- Error write() override;
+ Error write();
COFFWriter(Object &Obj, Buffer &Buf)
- : Writer(Obj, Buf), StrTabBuilder(StringTableBuilder::WinCOFF) {}
+ : Obj(Obj), Buf(Buf), StrTabBuilder(StringTableBuilder::WinCOFF) {}
};
} // end namespace coff