1 #ifndef ARRAYMANAGER_HPP
2 #define ARRAYMANAGER_HPP
9 #define ALLOC_CHECK_ARRAY( array, this_size ) \
10 ArrayManager array##_manager( reinterpret_cast< void** >( array ), *( array##_allocated ), *( array##_size ), \
11 this_size, sizeof( **( array ) ), err ); \
12 if( iBase_SUCCESS != *err ) return
14 #define ALLOC_CHECK_TAG_ARRAY( array, this_size ) \
15 ArrayManager array##_manager( reinterpret_cast< void** >( array ), *( array##_allocated ), *( array##_size ), \
16 this_size, 1, err ); \
17 if( iBase_SUCCESS != *err ) return
19 #define KEEP_ARRAY( array ) array##_manager.keep_array()
23 #define ALLOC_CHECK_ARRAY_NOFAIL( array, this_size ) \
24 ALLOC_CHECK_ARRAY( array, this_size ); \
33 ArrayManager(
void** array_ptr,
int& array_allocated_space,
int& array_size,
int count,
int val_size,
int* err )
36 if( !*array_ptr || !array_allocated_space )
38 *array_ptr = std::malloc( val_size * count );
39 array_allocated_space = array_size = count;
50 if( array_allocated_space < count )