- Main Page
- Classes
- Files
- Directories
- Examples

- File List
- File Members

# fbxalloc.h

Go to the documentation of this file.

    00001 /****************************************************************************************
    00002
    00003    Copyright (C) 2012 Autodesk, Inc.
    00004    All rights reserved.
    00005
    00006    Use of this software is subject to the terms of the Autodesk license agreement
    00007    provided at the time of installation or download, or which otherwise accompanies
    00008    this software in either electronic or hard copy form.
    00009
    00010 ****************************************************************************************/
    00011
    00020 #ifndef _FBXSDK_CORE_ARCH_ALLOC_H_
    00021 #define _FBXSDK_CORE_ARCH_ALLOC_H_
    00022
    00023 #include <fbxsdk/fbxsdk_def.h>
    00024
    00025 #if defined(_DEBUG) && defined(FBXSDK_ENV_WIN)
    00026     #include <crtdbg.h>
    00027 #endif
    00028
    00029 #if defined(FBXSDK_ENV_MAC)
    00030     #include <malloc/malloc.h>
    00031 #else
    00032     #include <malloc.h>
    00033 #endif
    00034
    00035 #include <fbxsdk/fbxsdk_nsbegin.h>
    00036
    00037 #if defined(FBXSDK_ARCH_32)
    00038     #define FBXSDK_MEMORY_ALIGNMENT 4
    00039 #elif defined(FBXSDK_ARCH_64)
    00040     #define FBXSDK_MEMORY_ALIGNMENT 8
    00041 #endif
    00042
    00043 #ifndef _msize
    00044     #if defined(FBXSDK_ENV_MAC)
    00045         #define _msize ((size_t(*)(void*))malloc_size)
    00046     #elif defined(FBXSDK_ENV_LINUX)
    00047         #define _msize ((size_t(*)(void*))malloc_usable_size)
    00048     #endif
    00049 #endif
    00050
    00051 #if defined(_DEBUG) && defined(FBXSDK_ENV_WIN)
    00052     typedef void*   (*FbxMallocProc)(size_t, int, const char*, int);
    00053     typedef void*   (*FbxCallocProc)(size_t, size_t, int, const char*, int);
    00054     typedef void*   (*FbxReallocProc)(void*, size_t, int, const char*, int);
    00055     typedef void    (*FbxFreeProc)(void*, int);
    00056     typedef size_t  (*FbxMSizeProc)(void*, int);
    00057 #else
    00058     typedef void*   (*FbxMallocProc)(size_t);
    00059     typedef void*   (*FbxCallocProc)(size_t, size_t);
    00060     typedef void*   (*FbxReallocProc)(void*, size_t);
    00061     typedef void    (*FbxFreeProc)(void*);
    00062     typedef size_t  (*FbxMSizeProc)(void*);
    00063 #endif
    00064
    00068 FBXSDK_DLL void FbxSetMallocHandler(FbxMallocProc pHandler);
    00069
    00073 FBXSDK_DLL void FbxSetCallocHandler(FbxCallocProc pHandler);
    00074
    00078 FBXSDK_DLL void FbxSetReallocHandler(FbxReallocProc pHandler);
    00079
    00083 FBXSDK_DLL void FbxSetFreeHandler(FbxFreeProc pHandler);
    00084
    00088 FBXSDK_DLL void FbxSetMSizeHandler(FbxMSizeProc pHandler);
    00089
    00090 //Internal use only
    00091 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00092     FBXSDK_DLL void* FbxMalloc(size_t pSize);
    00093     FBXSDK_DLL void* FbxCalloc(size_t pCount, size_t pSize);
    00094     FBXSDK_DLL void* FbxRealloc(void* pData, size_t pSize);
    00095     FBXSDK_DLL void FbxFree(void* pData);
    00096     FBXSDK_DLL size_t FbxMSize(void* pData);
    00097     FBXSDK_DLL void* FbxMallocAligned(size_t pSize);
    00098     FBXSDK_DLL void* FbxCallocAligned(size_t pCount, size_t pSize);
    00099     FBXSDK_DLL void* FbxReallocAligned(void* pAlignedPtr, size_t pSize);
    00100     FBXSDK_DLL void FbxFreeAligned(void* pAlignedPtr);
    00101     FBXSDK_DLL char* FbxStrDup(const char* pString);
    00102     FBXSDK_DLL wchar_t* FbxStrDupWC(const wchar_t* pString);
    00103
    00104     #if defined(_DEBUG) && defined(FBXSDK_ENV_WIN)
    00105         FBXSDK_DLL void* FbxMallocDebug(size_t pSize, int pBlock, const char* pFile, int pLine);
    00106         FBXSDK_DLL void* FbxCallocDebug(size_t pCount, size_t pSize, int pBlock, const char* pFile, int pLine);
    00107         FBXSDK_DLL void* FbxReallocDebug(void* pData, size_t pSize, int pBlock, const char* pFile, int pLine);
    00108         FBXSDK_DLL void FbxFreeDebug(void* pData, int pBlock);
    00109         FBXSDK_DLL size_t FbxMSizeDebug(void* pData, int pBlock);
    00110         FBXSDK_DLL char* FbxStrDupDebug(const char* pString, int pBlock, const char* pFile, int pLine);
    00111         FBXSDK_DLL wchar_t* FbxStrDupWCDebug(const wchar_t* pString, int pBlock, const char* pFile, int pLine);
    00112
    00113         #define FbxMalloc(s) FbxMallocDebug(s, _NORMAL_BLOCK, __FILE__, __LINE__)
    00114         #define FbxCalloc(c, s) FbxCallocDebug(c, s, _NORMAL_BLOCK, __FILE__, __LINE__)
    00115         #define FbxRealloc(p, s) FbxReallocDebug(p, s, _NORMAL_BLOCK, __FILE__, __LINE__)
    00116         #define FbxFree(p) FbxFreeDebug(p, _NORMAL_BLOCK)
    00117         #define FbxMSize(p) FbxMSizeDebug(p, _NORMAL_BLOCK)
    00118         #define FbxStrDup(s) FbxStrDupDebug(s, _NORMAL_BLOCK, __FILE__, __LINE__)
    00119         #define FbxStrDupWC(s) FbxStrDupWCDebug(s, _NORMAL_BLOCK, __FILE__, __LINE__)
    00120     #endif
    00121 #endif
    00122
    00123 #include <fbxsdk/fbxsdk_nsend.h>
    00124
    00125 #endif /* _FBXSDK_CORE_ARCH_ALLOC_H_ */