Changeset 3105 for trunk/libtransmission/ptrarray.c
- Timestamp:
- Sep 20, 2007, 4:32:01 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/ptrarray.c
r2851 r3105 20 20 #define GROW 32 21 21 22 struct tr_ptrArray _s22 struct tr_ptrArray 23 23 { 24 24 void ** items; … … 27 27 }; 28 28 29 tr_ptrArray _t*29 tr_ptrArray* 30 30 tr_ptrArrayNew( void ) 31 31 { 32 tr_ptrArray _t* p;32 tr_ptrArray * p; 33 33 34 p = tr_new( tr_ptrArray _t, 1 );34 p = tr_new( tr_ptrArray, 1 ); 35 35 p->n_items = 0; 36 36 p->n_alloc = GROW; … … 41 41 42 42 void 43 tr_ptrArrayFree( tr_ptrArray _t* t )43 tr_ptrArrayFree( tr_ptrArray * t ) 44 44 { 45 45 assert( t != NULL ); … … 51 51 52 52 void** 53 tr_ptrArrayPeek( tr_ptrArray _t* t, int * size )53 tr_ptrArrayPeek( tr_ptrArray * t, int * size ) 54 54 { 55 55 *size = t->n_items; … … 57 57 } 58 58 59 void* 60 tr_ptrArrayNth( tr_ptrArray* t, int i ) 61 { 62 assert( t != NULL ); 63 assert( i >= 0 ); 64 assert( i < t->n_items ); 65 66 return t->items[i]; 67 } 68 59 69 int 60 tr_ptrArraySize( const tr_ptrArray _t* t )70 tr_ptrArraySize( const tr_ptrArray * t ) 61 71 { 62 72 return t->n_items; … … 64 74 65 75 int 66 tr_ptrArrayEmpty( const tr_ptrArray _t* t )76 tr_ptrArrayEmpty( const tr_ptrArray * t ) 67 77 { 68 78 return t->n_items == 0; … … 70 80 71 81 void 72 tr_ptrArrayClear( tr_ptrArray _t* t )82 tr_ptrArrayClear( tr_ptrArray * t ) 73 83 { 74 84 t->n_items = 0; … … 76 86 77 87 int 78 tr_ptrArrayInsert( tr_ptrArray _t* t, void * ptr, int pos )88 tr_ptrArrayInsert( tr_ptrArray * t, void * ptr, int pos ) 79 89 { 80 90 if( pos<0 || pos>t->n_items ) … … 96 106 97 107 int 98 tr_ptrArrayAppend( tr_ptrArray _t* t, void * ptr )108 tr_ptrArrayAppend( tr_ptrArray * t, void * ptr ) 99 109 { 100 110 return tr_ptrArrayInsert( t, ptr, -1 ); … … 102 112 103 113 void 104 tr_ptrArrayErase( tr_ptrArray _t* t, int begin, int end )114 tr_ptrArrayErase( tr_ptrArray * t, int begin, int end ) 105 115 { 106 116 assert( begin >= 0 ); … … 121 131 122 132 int 123 tr_ptrArrayLowerBound( const tr_ptrArray _t* t,124 void* ptr,125 int 126 int 133 tr_ptrArrayLowerBound( const tr_ptrArray * t, 134 const void * ptr, 135 int compare( const void *,const void * ), 136 int * exact_match ) 127 137 { 128 int c = -1;129 138 int len = t->n_items; 130 139 int first = 0; … … 134 143 int half = len / 2; 135 144 int middle = first + half; 136 c = compare( t->items[middle], ptr );145 const int c = compare( t->items[middle], ptr ); 137 146 if( c < 0 ) { 138 147 first = middle + 1; … … 155 164 156 165 int 157 tr_ptrArrayInsertSorted( tr_ptrArray _t* t,158 void 159 int 166 tr_ptrArrayInsertSorted( tr_ptrArray * t, 167 void * ptr, 168 int compare(const void*,const void*) ) 160 169 { 161 170 const int pos = tr_ptrArrayLowerBound( t, ptr, compare, NULL ); … … 164 173 165 174 void* 166 tr_ptrArrayFindSorted( tr_ptrArray _t* t,167 void* ptr,168 int 175 tr_ptrArrayFindSorted( tr_ptrArray * t, 176 const void * ptr, 177 int compare(const void*,const void*) ) 169 178 { 170 179 int match; … … 174 183 175 184 void* 176 tr_ptrArrayRemoveSorted( tr_ptrArray _t* t,177 void 178 int 185 tr_ptrArrayRemoveSorted( tr_ptrArray * t, 186 void * ptr, 187 int compare(const void*,const void*) ) 179 188 { 180 189 void * ret = NULL;
Note: See TracChangeset
for help on using the changeset viewer.