//----------------------------------------------------------------------------- // 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 }
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 }