Changes in libcfa/src/stdlib.hfa [b6a71bc:fbe3f03]
- File:
-
- 1 edited
-
libcfa/src/stdlib.hfa (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/stdlib.hfa
rb6a71bc rfbe3f03 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 12 07:39:15202413 // Update Count : 81 212 // Last Modified On : Mon Apr 15 22:11:51 2024 13 // Update Count : 817 14 14 // 15 15 … … 64 64 } // calloc 65 65 66 T * resize( T * ptr, size_t size ) { // CFA resize , eliminate return-type cast66 T * resize( T * ptr, size_t size ) { // CFA resize 67 67 if ( _Alignof(T) <= libAlign() ) return (T *)resize( (void *)ptr, size ); // CFA resize 68 68 else return (T *)resize( (void *)ptr, _Alignof(T), size ); // CFA resize 69 69 } // resize 70 70 71 T * realloc( T * ptr, size_t size ) { // CFA realloc , eliminate return-type cast71 T * realloc( T * ptr, size_t size ) { // CFA realloc 72 72 if ( _Alignof(T) <= libAlign() ) return (T *)realloc( (void *)ptr, size ); // C realloc 73 73 else return (T *)realloc( (void *)ptr, _Alignof(T), size ); // CFA realloc 74 } // realloc 75 76 T * reallocarray( T * ptr, size_t dim ) { // CFA reallocarray 77 if ( _Alignof(T) <= libAlign() ) return (T *)reallocarray( (void *)ptr, dim, sizeof(T) ); // C reallocarray 78 else return (T *)reallocarray( (void *)ptr, _Alignof(T), dim ); // CFA reallocarray 74 79 } // realloc 75 80 … … 210 215 } // alloc_internal$ 211 216 212 forall( TT ... | { T * alloc_internal$( void *, T *, size_t, size_t, S_fill(T), TT ); } ) {217 forall( TT ... | { T * alloc_internal$( void *, T *, size_t, size_t, S_fill(T), TT ); } ) { 213 218 T * alloc_internal$( void *, T *, size_t Align, size_t Dim, S_fill(T) Fill, T_resize Resize, TT rest ) { 214 219 return alloc_internal$( Resize, (T*)0p, Align, Dim, Fill, rest); … … 262 267 free( (void *)ptr ); // C free 263 268 } // free 264 static inline forall( T &, TT ... | { void free( TT ); } )269 static inline forall( T &, TT ... | { void free( TT ); } ) 265 270 void free( T * ptr, TT rest ) { 266 271 free( ptr ); … … 269 274 270 275 // CFA allocation/deallocation and constructor/destructor, non-array types 271 static inline forall( T & | sized(T), TT ... | { void ?{}( T &, TT ); } )276 static inline forall( T & | sized(T), TT ... | { void ?{}( T &, TT ); } ) 272 277 T * new( TT p ) { 273 278 return &(*(T *)malloc()){ p }; // run constructor … … 282 287 free( ptr ); // always call free 283 288 } // delete 284 static inline forall( T &, TT ... | { void ^?{}( T & ); void delete( TT ); } )289 static inline forall( T &, TT ... | { void ^?{}( T & ); void delete( TT ); } ) 285 290 void delete( T * ptr, TT rest ) { 286 291 delete( ptr ); … … 289 294 290 295 // CFA allocation/deallocation and constructor/destructor, array types 291 forall( T & | sized(T), TT ... | { void ?{}( T &, TT ); } ) T * anew( size_t dim, TT p );296 forall( T & | sized(T), TT ... | { void ?{}( T &, TT ); } ) T * anew( size_t dim, TT p ); 292 297 forall( T & | sized(T) | { void ^?{}( T & ); } ) void adelete( T arr[] ); 293 forall( T & | sized(T) | { void ^?{}( T & ); }, TT ... | { void adelete( TT ); } ) void adelete( T arr[], TT rest );298 forall( T & | sized(T) | { void ^?{}( T & ); }, TT ... | { void adelete( TT ); } ) void adelete( T arr[], TT rest ); 294 299 //--------------------------------------- 295 300
Note:
See TracChangeset
for help on using the changeset viewer.