Changes in directory llvm/lib/System/Win32:
Memory.inc updated: 1.6 -> 1.7 --- Log message: Change AllocateRWX/DeallocateRWX to not throw an exception. --- Diffs of the changes: (+8 -6) Memory.inc | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) Index: llvm/lib/System/Win32/Memory.inc diff -u llvm/lib/System/Win32/Memory.inc:1.6 llvm/lib/System/Win32/Memory.inc:1.7 --- llvm/lib/System/Win32/Memory.inc:1.6 Fri Jul 29 18:39:25 2005 +++ llvm/lib/System/Win32/Memory.inc Fri Jul 7 12:32:37 2006 @@ -23,7 +23,9 @@ //=== and must not be UNIX code //===----------------------------------------------------------------------===// -MemoryBlock Memory::AllocateRWX(unsigned NumBytes, const MemoryBlock* NearBlock) { +MemoryBlock Memory::AllocateRWX(unsigned NumBytes, + const MemoryBlock *NearBlock, + std::string *ErrMsg) { if (NumBytes == 0) return MemoryBlock(); static const long pageSize = Process::GetPageSize(); @@ -34,7 +36,8 @@ void *pa = VirtualAlloc(NULL, NumPages*pageSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); if (pa == NULL) { - ThrowError("Can't allocate RWX Memory: "); + GetError("Can't allocate RWX Memory: ", ErrMsg); + return MemoryBlock(); } MemoryBlock result; @@ -43,11 +46,10 @@ return result; } -void Memory::ReleaseRWX(MemoryBlock& M) { +bool Memory::ReleaseRWX(MemoryBlock &M, std::string *ErrMsg) { if (M.Address == 0 || M.Size == 0) return; - if (!VirtualFree(M.Address, 0, MEM_RELEASE)) { - ThrowError("Can't release RWX Memory: "); - } + if (!VirtualFree(M.Address, 0, MEM_RELEASE)) + return GetError("Can't release RWX Memory: ", ErrMsg); } } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits