示例#1
0
//-----------------------------------------------------------------------------
// Returns size of a particular allocation
//-----------------------------------------------------------------------------
size_t CDbgMemAlloc::GetSize( void *pMem )
{
	if (!pMem)
		return 0;

	return _msize_dbg( pMem, _NORMAL_BLOCK );
}
size_t VMemoryManager_CRT::MemSize(void* ptr)
{
  // Not all memory size functions cope with NULL pointer
  if(ptr == NULL)
    return 0;

#if defined(WIN32)  || defined (_VISION_XENON) 
#if defined(VBASE_USE_CRT_DEBUG)
  return _msize_dbg(ptr, _NORMAL_BLOCK);
#else
  return _msize(ptr);
#endif


#elif defined (_VISION_PS3)
  return malloc_usable_size(ptr);



#elif defined (_VISION_POSIX)
  return 0; // TODO: IOS

#elif defined (_VISION_PSP2)
  return malloc_usable_size(ptr);
#elif defined (_VISION_WIIU)
  return 0; //XXCK can fake if you really need it
#else
#error Undefined platform!
#endif
}
示例#3
0
	static int __DPUMA__AllocHook__( int allocType, void *userData, size_t size, int blockType,
			long requestNumber, const unsigned char *filename, int lineNumber)
	{
		uint32_t prevSize = 0;
		int rc = PrevAllocHook(allocType,userData,size,blockType,
				requestNumber, filename, lineNumber);
		if(fAllocHook && rc > 0) // Если rc меньше нуля, тогда мы уже работали
		{
#ifdef _DEBUG
			if(userData)
			prevSize = _msize_dbg(userData,blockType);
#endif
			if(LDPUMA_IsActive())
			rc = fAllocHook(allocType,userData,size,prevSize,blockType,
					requestNumber,(puchar)filename, lineNumber);
		}
		return rc;
	}
size_t VMemoryManager_CRT::AlignedMemSize(void* ptr, int iAlignment)
{
  // Not all memory size functions cope with NULL pointer
  if(ptr == NULL)
    return 0;

#if defined(WIN32)  || defined (_VISION_XENON) 
#if defined(VBASE_USE_CRT_DEBUG)
#if defined(_MSC_VER) && (_MSC_VER >= 1400)
  return _aligned_msize_dbg(ptr, iAlignment, 0);
#else
  return _msize_dbg(ptr, _NORMAL_BLOCK);//@@@@ VStudio < 2005 and code might be wrong
#endif
#else
#if defined(_MSC_VER) && (_MSC_VER >= 1400)
  return _aligned_msize(ptr, iAlignment, 0);
#else
  return _msize(ptr);//@@@@ VStudio < 2005 and code might be wrong
#endif
#endif


#elif defined (_VISION_PS3)
  return malloc_usable_size(ptr);



#elif defined (_VISION_POSIX)
  return 0; // TODO: IOS

#elif defined (_VISION_PSP2)
  return malloc_usable_size(ptr);

#elif defined (_VISION_WIIU)
  return 0; // XXCK

#else
#error Undefined platform!
#endif
}