Changes in libcfa/src/stdlib.hfa [856fe3e:76e2113]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/stdlib.hfa
r856fe3e r76e2113 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed May 13 17:23:51202013 // Update Count : 43 512 // Last Modified On : Thu Apr 16 22:44:05 2020 13 // Update Count : 432 14 14 // 15 15 … … 23 23 // Reduce includes by explicitly defining these routines. 24 24 extern "C" { 25 void * aalloc( size_t dim, size_t elemSize ); // CFA heap26 void * resize( void * oaddr, size_t size ); // CFA heap27 25 void * memalign( size_t align, size_t size ); // malloc.h 28 void * amemalign( size_t align, size_t dim, size_t elemSize ); // CFA heap 29 void * cmemalign( size_t align, size_t noOfElems, size_t elemSize ); // CFA heap 26 size_t malloc_usable_size( void * ptr ); // malloc.h 30 27 size_t malloc_size( void * addr ); // CFA heap 31 size_t malloc_usable_size( void * ptr ); // malloc.h28 void * cmemalign( size_t alignment, size_t noOfElems, size_t elemSize ); // CFA heap 32 29 void * memset( void * dest, int fill, size_t size ); // string.h 33 30 void * memcpy( void * dest, const void * src, size_t size ); // string.h 31 void * resize( void * oaddr, size_t size ); // CFA heap 34 32 } // extern "C" 35 33 … … 54 52 } // malloc 55 53 56 T * aalloc( size_t dim ) {57 if ( _Alignof(T) <= libAlign() ) return (T *)(void *)aalloc( dim, (size_t)sizeof(T) ); // CFA aalloc58 else return (T *)amemalign( _Alignof(T), dim, sizeof(T) );59 } // aalloc60 61 54 T * calloc( size_t dim ) { 62 55 if ( _Alignof(T) <= libAlign() )return (T *)(void *)calloc( dim, sizeof(T) ); // C calloc … … 64 57 } // calloc 65 58 66 T * resize( T * ptr, size_t size ) { // CFA realloc, eliminate return-type cast67 return (T *)(void *)resize( (void *)ptr, size ); // C realloc68 } // resize69 70 59 T * realloc( T * ptr, size_t size ) { // CFA realloc, eliminate return-type cast 71 60 return (T *)(void *)realloc( (void *)ptr, size ); // C realloc … … 76 65 } // memalign 77 66 78 T * amemalign( size_t align, size_t dim ) {79 return (T *)amemalign( align, dim, sizeof(T) ); // CFA amemalign80 } // amemalign81 82 67 T * cmemalign( size_t align, size_t dim ) { 83 68 return (T *)cmemalign( align, dim, sizeof(T) ); // CFA cmemalign … … 101 86 102 87 T * alloc( size_t dim ) { 103 return aalloc( dim ); 88 if ( _Alignof(T) <= libAlign() ) return (T *)(void *)malloc( dim * (size_t)sizeof(T) ); 89 else return (T *)memalign( _Alignof(T), dim * sizeof(T) ); 104 90 } // alloc 105 91 … … 120 106 return (T *)(void *)realloc( (void *)ptr, dim * sizeof(T) ); // C realloc 121 107 } else { 122 return resize( ptr, dim * sizeof(T) ); // resize 108 struct __Unknown {}; 109 return alloc( (__Unknown *)ptr, dim ); // reuse, cheat making T/S different types 123 110 } // if 124 111 } // alloc … … 161 148 } // alloc_align 162 149 163 T * alloc_align( T * ptr, size_t align ) { // aligned realloc array150 T * alloc_align( T ptr[], size_t align ) { // aligned realloc array 164 151 return (T *)(void *)realloc( (void *)ptr, align, sizeof(T) ); // CFA realloc 165 152 } // alloc_align
Note: See TracChangeset
for help on using the changeset viewer.