mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-16 12:24:03 +00:00
Make ObjectFile ownership of the MemoryBuffer optional.
This allows llvm-ar to mmap the input files only once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200040 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -463,11 +463,12 @@ error_code COFFObjectFile::initExportTablePtr() {
|
||||
return object_error::success;
|
||||
}
|
||||
|
||||
COFFObjectFile::COFFObjectFile(MemoryBuffer *Object, error_code &EC)
|
||||
: ObjectFile(Binary::ID_COFF, Object), COFFHeader(0), PE32Header(0),
|
||||
DataDirectory(0), SectionTable(0), SymbolTable(0), StringTable(0),
|
||||
StringTableSize(0), ImportDirectory(0), NumberOfImportDirectory(0),
|
||||
ExportDirectory(0) {
|
||||
COFFObjectFile::COFFObjectFile(MemoryBuffer *Object, error_code &EC,
|
||||
bool BufferOwned)
|
||||
: ObjectFile(Binary::ID_COFF, Object, BufferOwned), COFFHeader(0),
|
||||
PE32Header(0), DataDirectory(0), SectionTable(0), SymbolTable(0),
|
||||
StringTable(0), StringTableSize(0), ImportDirectory(0),
|
||||
NumberOfImportDirectory(0), ExportDirectory(0) {
|
||||
// Check that we at least have enough room for a header.
|
||||
if (!checkSize(Data, EC, sizeof(coff_file_header))) return;
|
||||
|
||||
@ -1015,9 +1016,10 @@ error_code ExportDirectoryEntryRef::getSymbolName(StringRef &Result) const {
|
||||
return object_error::success;
|
||||
}
|
||||
|
||||
ErrorOr<ObjectFile *> ObjectFile::createCOFFObjectFile(MemoryBuffer *Object) {
|
||||
ErrorOr<ObjectFile *> ObjectFile::createCOFFObjectFile(MemoryBuffer *Object,
|
||||
bool BufferOwned) {
|
||||
error_code EC;
|
||||
OwningPtr<COFFObjectFile> Ret(new COFFObjectFile(Object, EC));
|
||||
OwningPtr<COFFObjectFile> Ret(new COFFObjectFile(Object, EC, BufferOwned));
|
||||
if (EC)
|
||||
return EC;
|
||||
return Ret.take();
|
||||
|
Reference in New Issue
Block a user