diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-08-22 16:07:44 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-08-22 16:07:44 +0000 |
commit | 64c5920336da876cf9386f87abdd67529c3df524 (patch) | |
tree | 6192ab7b7c7a400693d045574382de4eb365e2d8 /llvm/lib/Bytecode/Archive/ArchiveWriter.cpp | |
parent | efdc3a13cdccf11fe33773e724ff40ffa8c733b0 (diff) | |
download | bcm5719-llvm-64c5920336da876cf9386f87abdd67529c3df524.tar.gz bcm5719-llvm-64c5920336da876cf9386f87abdd67529c3df524.zip |
For PR797:
Adjust to new interface for MappedFile. Note that the new "throw"
statements will be removed later.
llvm-svn: 29818
Diffstat (limited to 'llvm/lib/Bytecode/Archive/ArchiveWriter.cpp')
-rw-r--r-- | llvm/lib/Bytecode/Archive/ArchiveWriter.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/llvm/lib/Bytecode/Archive/ArchiveWriter.cpp b/llvm/lib/Bytecode/Archive/ArchiveWriter.cpp index dc7ef672055..a5b52f465a9 100644 --- a/llvm/lib/Bytecode/Archive/ArchiveWriter.cpp +++ b/llvm/lib/Bytecode/Archive/ArchiveWriter.cpp @@ -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 |