On Mon, Oct 10, 2011 at 3:48 AM, Philip Martin
<philip.martin_at_wandisco.com> wrote:
> pburba_at_apache.org writes:
>
>> Author: pburba
>> Date: Fri Oct  7 19:00:40 2011
>> New Revision: 1180154
>
>> + Â if (elements_to_delete)
>> + Â Â for (i = starting_index; i < (elements_to_delete + starting_index); i++)
>> + Â Â Â svn_sort__array_delete(rangelist, starting_index);
>> +}
>
> Given the pop optimisation it would be more efficient to delete the
> elements in reverse order. Â Passing the number of elements to be deleted
> to svn_sort__array_delete would be better.
Did the latter in r118109.0
Paul
>> +void
>> +svn_sort__array_delete(apr_array_header_t *arr,
>> + Â Â Â Â Â Â Â Â Â Â Â int delete_index)
>> +{
>> + Â /* Do we have a valid index? */
>> + Â if (delete_index >= 0 && delete_index < arr->nelts)
>> + Â Â {
>> + Â Â Â if (delete_index == (arr->nelts - 1))
>> + Â Â Â Â {
>> + Â Â Â Â Â /* Deleting the last or only element in an array is easy. */
>> + Â Â Â Â Â apr_array_pop(arr);
>> + Â Â Â Â }
>> + Â Â Â else
>> + Â Â Â Â {
>> + Â Â Â Â Â memmove(arr->elts + arr->elt_size * delete_index,
>> + Â Â Â Â Â Â Â Â Â arr->elts + arr->elt_size * (delete_index + 1),
>> + Â Â Â Â Â Â Â Â Â arr->elt_size * (arr->nelts - 1 - delete_index));
>> + Â Â Â Â Â --(arr->nelts);
>> + Â Â Â Â }
>> + Â Â }
>> +}
>
> --
> Philip
>
Received on 2011-10-10 19:42:01 CEST