Changes in src/libcfa/stdlib.c [707446a:c3ebf37]
- File:
-
- 1 edited
-
src/libcfa/stdlib.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/stdlib.c
r707446a rc3ebf37 10 10 // Created On : Thu Jan 28 17:10:29 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Apr 1 18:31:26201713 // Update Count : 1 8112 // Last Modified On : Thu Feb 23 23:27:02 2017 13 // Update Count : 171 14 14 // 15 15 … … 91 91 } 92 92 93 forall( dtype T, ttype Params | { void ^?{}(T *); void delete(Params); } )94 void delete( T * ptr, Params rest ) {95 if ( ptr ) {96 ^ptr{};97 free( ptr );98 }99 delete( rest );100 }101 102 93 //--------------------------------------- 103 94 … … 225 216 int comp( const void * t1, const void * t2 ) { return *(T *)t1 < *(T *)t2 ? -1 : *(T *)t2 < *(T *)t1 ? 1 : 0; } 226 217 return (T *)bsearch( &key, arr, dimension, sizeof(T), comp ); 227 } // bsearch228 229 forall( otype T | { int ?<?( T, T ); } )230 unsigned int bsearch( T key, const T * arr, size_t dimension ) {231 int comp( const void * t1, const void * t2 ) { return *(T *)t1 < *(T *)t2 ? -1 : *(T *)t2 < *(T *)t1 ? 1 : 0; }232 T *result = (T *)bsearch( &key, arr, dimension, sizeof(T), comp );233 return result ? result - arr : dimension; // pointer subtraction includes sizeof(T)234 218 } // bsearch 235 219
Note:
See TracChangeset
for help on using the changeset viewer.