Fix More Casts

Properly cast some more code that triggered cast-away-const errors.

llvm-svn: 172469
This commit is contained in:
David Greene 2013-01-14 21:04:44 +00:00
parent c311561708
commit 8e46d89df4
1 changed files with 8 additions and 3 deletions

View File

@ -72,15 +72,20 @@ namespace {
/// getBlockAfter - Return the memory block immediately after this one.
///
MemoryRangeHeader &getBlockAfter() const {
return *(MemoryRangeHeader*)((char*)this+BlockSize);
return *reinterpret_cast<MemoryRangeHeader *>(
reinterpret_cast<char*>(
const_cast<MemoryRangeHeader *>(this))+BlockSize);
}
/// getFreeBlockBefore - If the block before this one is free, return it,
/// otherwise return null.
FreeRangeHeader *getFreeBlockBefore() const {
if (PrevAllocated) return 0;
intptr_t PrevSize = ((intptr_t *)this)[-1];
return (FreeRangeHeader*)((char*)this-PrevSize);
intptr_t PrevSize = reinterpret_cast<intptr_t *>(
const_cast<MemoryRangeHeader *>(this))[-1];
return reinterpret_cast<FreeRangeHeader *>(
reinterpret_cast<char*>(
const_cast<MemoryRangeHeader *>(this))-PrevSize);
}
/// FreeBlock - Turn an allocated block into a free block, adjusting