diff options
author | Chris Lattner <sabre@nondot.org> | 2008-04-01 04:26:46 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-04-01 04:26:46 +0000 |
commit | 54d19d42bb9b276b8b0b61d9bcd38ec94797138f (patch) | |
tree | fcd5198a01f00522dead5657dd55d3546f9b64d4 /lib/Archive/ArchiveReader.cpp | |
parent | 7e0debc2a796a1662c0611d5c43e422c63c6a0dc (diff) | |
download | external_llvm-54d19d42bb9b276b8b0b61d9bcd38ec94797138f.zip external_llvm-54d19d42bb9b276b8b0b61d9bcd38ec94797138f.tar.gz external_llvm-54d19d42bb9b276b8b0b61d9bcd38ec94797138f.tar.bz2 |
change the archive stuff to use MemoryBuffer instead of mappedfile.
MemoryBuffer is higher level and more closely matches the model
needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49029 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Archive/ArchiveReader.cpp')
-rw-r--r-- | lib/Archive/ArchiveReader.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/Archive/ArchiveReader.cpp b/lib/Archive/ArchiveReader.cpp index e279a3d..fd0e30a 100644 --- a/lib/Archive/ArchiveReader.cpp +++ b/lib/Archive/ArchiveReader.cpp @@ -14,7 +14,6 @@ #include "ArchiveInternals.h" #include "llvm/Bitcode/ReaderWriter.h" #include "llvm/Support/MemoryBuffer.h" -#include "llvm/System/MappedFile.h" #include "llvm/Module.h" #include <memory> using namespace llvm; @@ -239,7 +238,7 @@ Archive::parseMemberHeader(const char*& At, const char* End, std::string* error) bool Archive::checkSignature(std::string* error) { // Check the magic string at file's header - if (mapfile->size() < 8 || memcmp(base, ARFILE_MAGIC, 8)) { + if (mapfile->getBufferSize() < 8 || memcmp(base, ARFILE_MAGIC, 8)) { if (error) *error = "invalid signature for an archive file"; return false; @@ -257,7 +256,7 @@ Archive::loadArchive(std::string* error) { members.clear(); symTab.clear(); const char *At = base; - const char *End = base + mapfile->size(); + const char *End = mapfile->getBufferEnd(); if (!checkSignature(error)) return false; @@ -370,7 +369,7 @@ Archive::loadSymbolTable(std::string* ErrorMsg) { members.clear(); symTab.clear(); const char *At = base; - const char *End = base + mapfile->size(); + const char *End = mapfile->getBufferEnd(); // Make sure we're dealing with an archive if (!checkSignature(ErrorMsg)) @@ -478,7 +477,8 @@ Archive::findModuleDefiningSymbol(const std::string& symbol, // Module hasn't been loaded yet, we need to load it const char* modptr = base + fileOffset; - ArchiveMember* mbr = parseMemberHeader(modptr, base + mapfile->size(),ErrMsg); + ArchiveMember* mbr = parseMemberHeader(modptr, mapfile->getBufferEnd(), + ErrMsg); if (!mbr) return 0; @@ -517,8 +517,8 @@ Archive::findModulesDefiningSymbols(std::set<std::string>& symbols, // below. // Get a pointer to the first file - const char* At = ((const char*)base) + firstFileOffset; - const char* End = ((const char*)base) + mapfile->size(); + const char* At = base + firstFileOffset; + const char* End = mapfile->getBufferEnd(); while ( At < End) { // Compute the offset to be put in the symbol table |