Changes in src/libcfa/stdlib.c [4040425:52f85e0]
- File:
-
- 1 edited
-
src/libcfa/stdlib.c (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/stdlib.c
r4040425 r52f85e0 10 10 // Created On : Thu Jan 28 17:10:29 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:38:47201613 // Update Count : 14 312 // Last Modified On : Wed Feb 10 15:45:56 2016 13 // Update Count : 140 14 14 // 15 15 … … 27 27 } // extern "C" 28 28 29 forall( otype T ) T * memset( T * ptr, unsigned char fill ) { // use default value '\0' for fill29 forall( type T ) T * memset( T * ptr, unsigned char fill ) { // use default value '\0' for fill 30 30 printf( "memset1\n" ); 31 31 return (T *)memset( ptr, (int)fill, malloc_usable_size( ptr ) ); 32 32 } // memset 33 forall( otype T ) T * memset( T * ptr ) { // remove when default value available33 forall( type T ) T * memset( T * ptr ) { // remove when default value available 34 34 printf( "memset2\n" ); 35 35 return (T *)memset( ptr, 0, malloc_usable_size( ptr ) ); 36 36 } // memset 37 37 38 forall( otype T ) T * malloc( void ) {38 forall( type T ) T * malloc( void ) { 39 39 printf( "malloc1\n" ); 40 40 return (T *)malloc( sizeof(T) ); 41 41 } // malloc 42 forall( otype T ) T * malloc( size_t size ) {42 forall( type T ) T * malloc( size_t size ) { 43 43 printf( "malloc2\n" ); 44 44 return (T *)(void *)malloc( size ); 45 45 } // malloc 46 forall( otype T ) T * malloc( char fill ) {46 forall( type T ) T * malloc( char fill ) { 47 47 printf( "malloc3\n" ); 48 48 T * ptr = (T *)malloc( sizeof(T) ); … … 50 50 } // malloc 51 51 52 forall( otype T ) T * calloc( size_t size ) {52 forall( type T ) T * calloc( size_t size ) { 53 53 printf( "calloc\n" ); 54 54 return (T *)calloc( size, sizeof(T) ); 55 55 } // calloc 56 56 57 forall( otype T ) T * realloc( T * ptr, size_t size ) {57 forall( type T ) T * realloc( T * ptr, size_t size ) { 58 58 printf( "realloc1\n" ); 59 59 return (T *)(void *)realloc( (void *)ptr, size ); 60 60 } // realloc 61 forall( otype T ) T * realloc( T * ptr, size_t size, unsigned char fill ) {61 forall( type T ) T * realloc( T * ptr, size_t size, unsigned char fill ) { 62 62 printf( "realloc2\n" ); 63 63 char * nptr = (T *)(void *)realloc( (void *)ptr, size ); … … 67 67 } // realloc 68 68 69 forall( otype T ) T * malloc( T * ptr, size_t size ) {69 forall( type T ) T * malloc( T * ptr, size_t size ) { 70 70 printf( "malloc4\n" ); 71 71 return (T *)realloc( ptr, size ); 72 72 } // malloc 73 forall( otype T ) T * malloc( T * ptr, size_t size, unsigned char fill ) {73 forall( type T ) T * malloc( T * ptr, size_t size, unsigned char fill ) { 74 74 printf( "malloc5\n" ); 75 75 return (T *)realloc( ptr, size, fill ); 76 76 } // malloc 77 77 78 forall( otype T ) T * aligned_alloc( size_t alignment ) {78 forall( type T ) T * aligned_alloc( size_t alignment ) { 79 79 printf( "aligned_alloc\n" ); 80 80 return (T *)memalign( alignment, sizeof(T) ); 81 81 } // aligned_alloc 82 82 83 forall( otype T ) T * memalign( size_t alignment ) {83 forall( type T ) T * memalign( size_t alignment ) { 84 84 printf( "memalign\n" ); 85 85 return (T *)memalign( alignment, sizeof(T) ); 86 86 } // memalign 87 87 88 forall( otype T ) int posix_memalign( T ** ptr, size_t alignment ) {88 forall( type T ) int posix_memalign( T ** ptr, size_t alignment ) { 89 89 printf( "posix_memalign\n" ); 90 90 return posix_memalign( (void **)ptr, alignment, sizeof(T) ); … … 123 123 return ulli; 124 124 } 125 126 125 float ato( const char * ptr ) { 127 126 float f; … … 139 138 return ld; 140 139 } 141 142 140 float _Complex ato( const char * ptr ) { 143 141 float re, im; … … 174 172 return strtoull( sptr, eptr, base ); 175 173 } 176 177 174 float strto( const char * sptr, char ** eptr ) { 178 175 return strtof( sptr, eptr ); … … 184 181 return strtold( sptr, eptr ); 185 182 } 186 187 183 float _Complex strto( const char * sptr, char ** eptr ) { 188 184 float re, im; … … 212 208 //--------------------------------------- 213 209 214 forall( otype T | { int ?<?( T, T ); } )210 forall( type T | { int ?<?( T, T ); } ) 215 211 T * bsearch( const T key, const T * arr, size_t dimension ) { 216 212 int comp( const void * t1, const void * t2 ) { return *(T *)t1 < *(T *)t2 ? -1 : *(T *)t2 < *(T *)t1 ? 1 : 0; } … … 218 214 } // bsearch 219 215 220 forall( otype T | { int ?<?( T, T ); } )216 forall( type T | { int ?<?( T, T ); } ) 221 217 void qsort( const T * arr, size_t dimension ) { 222 218 int comp( const void * t1, const void * t2 ) { return *(T *)t1 < *(T *)t2 ? -1 : *(T *)t2 < *(T *)t1 ? 1 : 0; } … … 226 222 //--------------------------------------- 227 223 228 forall( otype T | { T ?/?( T, T ); T ?%?( T, T ); } )224 forall( type T | { T ?/?( T, T ); T ?%?( T, T ); } ) 229 225 [ T, T ] div( T t1, T t2 ) { /* return [ t1 / t2, t1 % t2 ]; */ } 230 226 … … 257 253 //--------------------------------------- 258 254 259 forall( otype T | { int ?<?( T, T ); } )255 forall( type T | { int ?<?( T, T ); } ) 260 256 T min( const T t1, const T t2 ) { 261 257 return t1 < t2 ? t1 : t2; 262 258 } // min 263 259 264 forall( otype T | { int ?>?( T, T ); } )260 forall( type T | { int ?>?( T, T ); } ) 265 261 T max( const T t1, const T t2 ) { 266 262 return t1 > t2 ? t1 : t2; 267 263 } // max 268 264 269 forall( otype T )265 forall( type T ) 270 266 void swap( T * t1, T * t2 ) { 271 267 T temp = *t1;
Note:
See TracChangeset
for help on using the changeset viewer.