Classes | |
class | mrpt::system::CGenericMemoryPool< DATA_PARAMS, POOLABLE_DATA > |
A generic system for versatile memory pooling. More... | |
Macros | |
#define | mrpt_alloca(nBytes) ::malloc( nBytes ) |
In platforms and compilers with support to "alloca", allocate a memory block on the stack; if alloca is not supported, it is emulated as a normal "malloc" - NOTICE: Since in some platforms alloca will be emulated with malloc, alloca_free MUST BE ALWAYS CALLED to avoid memory leaks. More... | |
#define | mrpt_alloca_free(mem_block) free(mem_block) |
This method must be called to "free" each memory block allocated with "system::alloca": If the block was really allocated in the stack, no operation is actually performed, otherwise it will be freed from the heap. More... | |
Functions | |
unsigned long BASE_IMPEXP | mrpt::system::getMemoryUsage () |
Returns the memory occupied by this process, in bytes. More... | |
void BASE_IMPEXP * | mrpt::system::os::aligned_malloc (size_t bytes, size_t alignment) |
Returns an aligned memory block. More... | |
void * | mrpt::system::os::aligned_calloc (size_t bytes, size_t alignment) |
Identical to aligned_malloc, but it zeroes the reserved memory block. More... | |
void BASE_IMPEXP * | mrpt::system::os::aligned_realloc (void *old_ptr, size_t bytes, size_t alignment) |
Frees a memory block reserved by aligned_malloc. More... | |
void BASE_IMPEXP | mrpt::system::os::aligned_free (void *p) |
Frees a memory block reserved by aligned_malloc. More... | |
template<typename _Tp > | |
_Tp * | mrpt::system::os::align_ptr (_Tp *ptr, int n=(int) sizeof(_Tp)) |
Returns a pointer a bit forward in memory so it's aligned for the given boundary size. More... | |
template<int bytes> | |
bool | mrpt::system::is_aligned (const void *ptr) |
template<> | |
bool | mrpt::system::is_aligned< 8 > (const void *ptr) |
template<> | |
bool | mrpt::system::is_aligned< 16 > (const void *ptr) |
#define mrpt_alloca | ( | nBytes | ) | ::malloc( nBytes ) |
In platforms and compilers with support to "alloca", allocate a memory block on the stack; if alloca is not supported, it is emulated as a normal "malloc" - NOTICE: Since in some platforms alloca will be emulated with malloc, alloca_free MUST BE ALWAYS CALLED to avoid memory leaks.
This method MUST BE a macro rather than a function in order to operate on the caller's stack.
Definition at line 38 of file memory.h.
Referenced by mrpt::maps::COccupancyGridMap2D::internal_insertObservation(), and mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ().
#define mrpt_alloca_free | ( | mem_block | ) | free(mem_block) |
This method must be called to "free" each memory block allocated with "system::alloca": If the block was really allocated in the stack, no operation is actually performed, otherwise it will be freed from the heap.
This method MUST BE a macro rather than a function in order to operate on the caller's stack.
Definition at line 53 of file memory.h.
Referenced by mrpt::maps::COccupancyGridMap2D::internal_insertObservation(), and mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ().
|
inline |
|
inline |
Identical to aligned_malloc, but it zeroes the reserved memory block.
Definition at line 71 of file memory.h.
References mrpt::system::os::aligned_malloc().
Referenced by mrpt::math::CMatrixTemplate< mrpt::math::TPoint3D >::realloc().
Frees a memory block reserved by aligned_malloc.
Definition at line 82 of file memory.cpp.
Referenced by mrpt::math::CMatrixTemplate< mrpt::math::TPoint3D >::realloc().
void * mrpt::system::os::aligned_malloc | ( | size_t | bytes, |
size_t | alignment | ||
) |
Returns an aligned memory block.
alignment | The desired alignment, typ. 8 or 16 bytes. 1 means no alignment required. It must be a power of two. |
alignment | The desired alignment, typ. 8 or 16 bytes. 1 means no alignment required. It must be a power of two. |
Definition at line 37 of file memory.cpp.
References THROW_EXCEPTION.
Referenced by mrpt::system::os::aligned_calloc().
Frees a memory block reserved by aligned_malloc.
alignment | The desired alignment, typ. 8 or 16 bytes. 1 means no alignment required. If old_ptr is NULL, a new block will be reserved from scratch. |
Definition at line 61 of file memory.cpp.
References MRPT_UNUSED_PARAM.
Referenced by mrpt::math::CMatrixTemplate< mrpt::math::TPoint3D >::realloc().
unsigned long mrpt::system::getMemoryUsage | ( | ) |
Returns the memory occupied by this process, in bytes.
Definition at line 182 of file memory.cpp.
References mrpt::system::os::fclose(), mrpt::system::os::fopen(), info, MEM, MRPT_END, and MRPT_START.
Referenced by mrpt::hmtslam::CHMTSLAM::generateLogFiles().
bool mrpt::system::is_aligned | ( | const void * | ptr | ) |
|
inline |
Definition at line 107 of file memory.h.
Referenced by fast_corner_detect_10(), fast_corner_detect_12(), fast_corner_detect_9(), ipl_to_grayscale(), mrpt::utils::CImage::scaleHalf(), and mrpt::utils::CImage::scaleHalfSmooth().
|
inline |
Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019 |