Add a comment, and fix a bug where AllocateRW recurred to AllocateRWX instead of itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48677 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson 2008-03-22 02:59:54 +00:00
parent a4bf5c046d
commit 191dfcf5c8
2 changed files with 9 additions and 1 deletions

View File

@ -57,6 +57,14 @@ namespace sys {
const MemoryBlock *NearBlock,
std::string *ErrMsg = 0);
/// This method allocates a block of Read/Write memory. This memory
/// needs to have executable permissions set before it can be used
/// to execute JIT'ed code.
///
/// On success, this returns a non-null memory block, otherwise it returns
/// a null memory block and fills in *ErrMsg.
///
/// @brief Allocate Read/Write/Execute memory.
static MemoryBlock AllocateRW(unsigned NumBytes,
const MemoryBlock *NearBlock,
std::string *ErrMsg = 0);

View File

@ -103,7 +103,7 @@ llvm::sys::Memory::AllocateRW(unsigned NumBytes, const MemoryBlock* NearBlock,
flags, fd, 0);
if (pa == MAP_FAILED) {
if (NearBlock) //Try again without a near hint
return AllocateRWX(NumBytes, 0);
return AllocateRW(NumBytes, 0);
MakeErrMsg(ErrMsg, "Can't allocate RWX Memory");
return MemoryBlock();