You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2011/10/10 22:22:06 UTC

svn commit: r1181215 - in /subversion/trunk/subversion: libsvn_subr/sorts.c tests/libsvn_subr/mergeinfo-test.c

Author: pburba
Date: Mon Oct 10 20:22:06 2011
New Revision: 1181215

URL: http://svn.apache.org/viewvc?rev=1181215&view=rev
Log:
The *rest* of r1181090!  

* subversion/libsvn_subr/sorts.c

  (svn_sort__array_delete): Don't assume we are only removing one element;
   since r1181090 we may remove many.

* subversion/tests/libsvn_subr/mergeinfo-test.c

  (test_rangelist_merge): Add a test that exercises the above modified block.

Modified:
    subversion/trunk/subversion/libsvn_subr/sorts.c
    subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c

Modified: subversion/trunk/subversion/libsvn_subr/sorts.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/sorts.c?rev=1181215&r1=1181214&r2=1181215&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/sorts.c (original)
+++ subversion/trunk/subversion/libsvn_subr/sorts.c Mon Oct 10 20:22:06 2011
@@ -269,11 +269,11 @@ svn_sort__array_delete(apr_array_header_
         }
       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)
-                  * elements_to_delete);
-          --(arr->nelts);
+          memmove(
+            arr->elts + arr->elt_size * delete_index,
+            arr->elts + (arr->elt_size * (delete_index + elements_to_delete)),
+            arr->elt_size * (arr->nelts - elements_to_delete - delete_index));
+          arr->nelts -= elements_to_delete;
         }
     }
 }

Modified: subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c?rev=1181215&r1=1181214&r2=1181215&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c Mon Oct 10 20:22:06 2011
@@ -1181,7 +1181,7 @@ test_rangelist_merge(apr_pool_t *pool)
     svn_merge_range_t expected_merge[6];
   };
 
-  #define SIZE_OF_RANGE_MERGE_TEST_ARRAY 67
+  #define SIZE_OF_RANGE_MERGE_TEST_ARRAY 68
   /* The actual test data. */
   struct rangelist_merge_test_data test_data[SIZE_OF_RANGE_MERGE_TEST_ARRAY] =
     {
@@ -1286,6 +1286,9 @@ test_rangelist_merge(apr_pool_t *pool)
 
       {"/A: 5-60", "/A: 3-4,50-100*", 2, {{2, 60, TRUE}, {60, 100, FALSE}}},
 
+      {"/A: 5,9,11-15,17,200-300,999", "/A: 7-50", 4,
+       {{4, 5, TRUE}, {6, 50, TRUE}, {199, 300, TRUE}, {998, 999, TRUE}}},
+
       /* A rangelist merged with an empty rangelist should equal the
          non-empty rangelist but in compacted form. */
       {"/A: 1-44,45,46,47-50",       "",  1, {{ 0, 50, TRUE }}},