Changes in directory llvm/lib/System/Unix:
MappedFile.inc updated: 1.17 -> 1.18 Signals.inc updated: 1.14 -> 1.15 Unix.h updated: 1.18 -> 1.19 --- Log message: For PR797: http://llvm.org/PR797 : Make the Win32 code exception free (untested/uncompiled) which forced some interface changes which had ripple effect. This should be the last of 797. --- Diffs of the changes: (+16 -9) MappedFile.inc | 10 ++++++---- Signals.inc | 13 +++++++++---- Unix.h | 2 +- 3 files changed, 16 insertions(+), 9 deletions(-) Index: llvm/lib/System/Unix/MappedFile.inc diff -u llvm/lib/System/Unix/MappedFile.inc:1.17 llvm/lib/System/Unix/MappedFile.inc:1.18 --- llvm/lib/System/Unix/MappedFile.inc:1.17 Tue Aug 22 11:04:22 2006 +++ llvm/lib/System/Unix/MappedFile.inc Fri Aug 25 16:37:17 2006 @@ -122,7 +122,7 @@ return info_->Size; } -void MappedFile::size(size_t new_size) { +bool MappedFile::size(size_t new_size, std::string* ErrMsg) { assert(info_ && "MappedFile not initialized"); // Take the mapping out of memory @@ -140,12 +140,14 @@ if (new_size > cur_size) { // Ensure we can allocate at least the idodes necessary to handle the // file size requested. - ::lseek(info_->FD, new_size, SEEK_SET); - ::write(info_->FD, "\0", 1); + if ((off_t)-1 == ::lseek(info_->FD, new_size, SEEK_SET)) + return MakeErrMsg(ErrMsg, "Can't lseek: "); + if (-1 == ::write(info_->FD, "\0", 1)) + return MakeErrMsg(ErrMsg, "Can't write: "); } // Put the mapping back into memory. - this->map(0); + return this->map(ErrMsg); } } Index: llvm/lib/System/Unix/Signals.inc diff -u llvm/lib/System/Unix/Signals.inc:1.14 llvm/lib/System/Unix/Signals.inc:1.15 --- llvm/lib/System/Unix/Signals.inc:1.14 Mon Aug 7 00:36:24 2006 +++ llvm/lib/System/Unix/Signals.inc Fri Aug 25 16:37:17 2006 @@ -154,7 +154,7 @@ } // RemoveFileOnSignal - The public API -void sys::RemoveFileOnSignal(const sys::Path &Filename) { +bool sys::RemoveFileOnSignal(const sys::Path &Filename, std::string* ErrMsg) { if (FilesToRemove == 0) FilesToRemove = new std::vector<sys::Path>; @@ -162,14 +162,18 @@ std::for_each(IntSigs, IntSigsEnd, RegisterHandler); std::for_each(KillSigs, KillSigsEnd, RegisterHandler); + return false; } // RemoveDirectoryOnSignal - The public API -void sys::RemoveDirectoryOnSignal(const sys::Path& path) { +bool sys::RemoveDirectoryOnSignal(const sys::Path& path, std::string* ErrMsg) { // Not a directory? sys::FileStatus Status; - if (path.getFileStatus(Status) || !Status.isDir) - return; + if (path.getFileStatus(Status) || !Status.isDir) { + if (ErrMsg) + *ErrMsg = path.toString() + " is not a directory"; + return true; + } if (DirectoriesToRemove == 0) DirectoriesToRemove = new std::vector<sys::Path>; @@ -178,6 +182,7 @@ std::for_each(IntSigs, IntSigsEnd, RegisterHandler); std::for_each(KillSigs, KillSigsEnd, RegisterHandler); + return false; } /// PrintStackTraceOnErrorSignal - When an error signal (such as SIBABRT or Index: llvm/lib/System/Unix/Unix.h diff -u llvm/lib/System/Unix/Unix.h:1.18 llvm/lib/System/Unix/Unix.h:1.19 --- llvm/lib/System/Unix/Unix.h:1.18 Wed Aug 23 15:34:57 2006 +++ llvm/lib/System/Unix/Unix.h Fri Aug 25 16:37:17 2006 @@ -94,7 +94,7 @@ // but, oh well, just use a generic message sprintf(buffer, "Error #%d", errnum); #endif - *ErrMsg = buffer; + *ErrMsg = prefix + buffer; return true; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits