For PR797:

Adjust to new interface for MappedFile. Note that the new "throw"
statements will be removed later.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29818 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2006-08-22 16:07:44 +00:00
parent 8627969597
commit 751ca6b48c
4 changed files with 38 additions and 12 deletions

View File

@ -137,8 +137,12 @@ Archive::Archive(const sys::Path& filename, bool map )
symTabSize(0), firstFileOffset(0), modules(), foreignST(0)
{
if (map) {
mapfile = new sys::MappedFile(filename);
base = (char*) mapfile->map();
std::string ErrMsg;
mapfile = new sys::MappedFile();
if (mapfile->open(filename, sys::MappedFile::READ_ACCESS, &ErrMsg))
throw ErrMsg;
if (!(base = (char*) mapfile->map(&ErrMsg)))
throw ErrMsg;
}
}

View File

@ -205,8 +205,12 @@ Archive::writeMember(
const char* data = (const char*)member.getData();
sys::MappedFile* mFile = 0;
if (!data) {
mFile = new sys::MappedFile(member.getPath());
data = (const char*) mFile->map();
std::string ErrMsg;
mFile = new sys::MappedFile();
if (mFile->open(member.getPath(), sys::MappedFile::READ_ACCESS, &ErrMsg))
throw ErrMsg;
if (data = (const char*) mFile->map(&ErrMsg))
throw ErrMsg;
fSize = mFile->size();
}
@ -437,8 +441,13 @@ Archive::writeToDisk(bool CreateSymbolTable, bool TruncateNames, bool Compress,
// we just wrote back in and copying it to the destination file.
// Map in the archive we just wrote.
sys::MappedFile arch(TmpArchive);
const char* base = (const char*) arch.map();
sys::MappedFile arch;
std::string ErrMsg;
if (arch.open(TmpArchive, sys::MappedFile::READ_ACCESS, &ErrMsg))
throw ErrMsg;
const char* base;
if (!(base = (const char*) arch.map(&ErrMsg)))
throw ErrMsg;
// Open another temporary file in order to avoid invalidating the
// mmapped data

View File

@ -137,8 +137,12 @@ Archive::Archive(const sys::Path& filename, bool map )
symTabSize(0), firstFileOffset(0), modules(), foreignST(0)
{
if (map) {
mapfile = new sys::MappedFile(filename);
base = (char*) mapfile->map();
std::string ErrMsg;
mapfile = new sys::MappedFile();
if (mapfile->open(filename, sys::MappedFile::READ_ACCESS, &ErrMsg))
throw ErrMsg;
if (!(base = (char*) mapfile->map(&ErrMsg)))
throw ErrMsg;
}
}

View File

@ -205,8 +205,12 @@ Archive::writeMember(
const char* data = (const char*)member.getData();
sys::MappedFile* mFile = 0;
if (!data) {
mFile = new sys::MappedFile(member.getPath());
data = (const char*) mFile->map();
std::string ErrMsg;
mFile = new sys::MappedFile();
if (mFile->open(member.getPath(), sys::MappedFile::READ_ACCESS, &ErrMsg))
throw ErrMsg;
if (data = (const char*) mFile->map(&ErrMsg))
throw ErrMsg;
fSize = mFile->size();
}
@ -437,8 +441,13 @@ Archive::writeToDisk(bool CreateSymbolTable, bool TruncateNames, bool Compress,
// we just wrote back in and copying it to the destination file.
// Map in the archive we just wrote.
sys::MappedFile arch(TmpArchive);
const char* base = (const char*) arch.map();
sys::MappedFile arch;
std::string ErrMsg;
if (arch.open(TmpArchive, sys::MappedFile::READ_ACCESS, &ErrMsg))
throw ErrMsg;
const char* base;
if (!(base = (const char*) arch.map(&ErrMsg)))
throw ErrMsg;
// Open another temporary file in order to avoid invalidating the
// mmapped data