| 209 | } |
| 210 | |
| 211 | int md_array_remove(struct apr_array_header_t *a, void *elem) |
| 212 | { |
| 213 | int i, n, m; |
| 214 | void **pe; |
| 215 | |
| 216 | assert(sizeof(void*) == a->elt_size); |
| 217 | n = i = 0; |
| 218 | while (i < a->nelts) { |
| 219 | pe = &APR_ARRAY_IDX(a, i, void*); |
| 220 | if (*pe == elem) { |
| 221 | m = a->nelts - (i+1); |
| 222 | if (m > 0) memmove(pe, pe+1, (unsigned)m*sizeof(void*)); |
| 223 | a->nelts--; |
| 224 | n++; |
| 225 | continue; |
| 226 | } |
| 227 | ++i; |
| 228 | } |
| 229 | return n; |
| 230 | } |
| 231 | |
| 232 | /**************************************************************************************************/ |
| 233 | /* string related */ |
no outgoing calls
no test coverage detected