Author: stefan2
Date: Sat Jan  4 00:17:01 2014
New Revision: 1555293

URL: http://svn.apache.org/r1555293
Log:
Since r1555138, the node_references member in the FSFS pack context
is no longer needed.  Remove it and all writes to it.

* subversion/libsvn_fs_fs/pack.c
  (pack_context_t): We only need the rep_references member and drop
                    its prefix.
  (initialize_pack_context,
   reset_pack_context): Update constructor and cleanup.
  (copy_rep_to_temp): Follow rename.
  (copy_node_to_temp): Don't write the node_references anymore.
  (compare_references_to): Drop.
  (compare_references_from,
   compare_ref_to_item_from): Rename to ...
  (compare_references,
   compare_ref_to_item): ... these.
  (sort_reps): Adapt to renames and remove node_references code.

Modified:
    subversion/trunk/subversion/libsvn_fs_fs/pack.c

Modified: subversion/trunk/subversion/libsvn_fs_fs/pack.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/pack.c?rev=1555293&r1=1555292&r2=1555293&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/pack.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/pack.c Sat Jan  4 00:17:01 2014
@@ -207,15 +207,10 @@ typedef struct pack_context_t
    * after each revision range.  Sorted by PATH, NODE_ID. */
   apr_array_header_t *path_order;
 
-  /* array of reference_t* linking noderevs to representations.  Will be
-   * filled in phase 2 and be cleared after each revision range.  It will
-   * be sorted by the TO members (i.e. the allow rep->noderev lookup). */
-  apr_array_header_t *node_references;
-
   /* array of reference_t* linking representations to their delta bases.
    * Will be filled in phase 2 and be cleared after each revision range.
    * It will be sorted by the FROM members (for rep->base rep lookup). */
-  apr_array_header_t *rep_references;
+  apr_array_header_t *references;
 
   /* array of svn_fs_fs__p2l_entry_t*.  Will be filled in phase 2 and be
    * cleared after each revision range.  During phase 3, we will set items
@@ -315,9 +310,7 @@ initialize_pack_context(pack_context_t *
   context->rev_offsets = apr_array_make(pool, max_revs, sizeof(int));
   context->path_order = apr_array_make(pool, max_items,
                                        sizeof(path_order_t *));
-  context->node_references = apr_array_make(pool, max_items,
-                                            sizeof(reference_t *));
-  context->rep_references = apr_array_make(pool, max_items,
+  context->references = apr_array_make(pool, max_items,
                                            sizeof(reference_t *));
   context->reps = apr_array_make(pool, max_items,
                                  sizeof(svn_fs_fs__p2l_entry_t *));
@@ -347,8 +340,7 @@ reset_pack_context(pack_context_t *conte
 
   apr_array_clear(context->rev_offsets);
   apr_array_clear(context->path_order);
-  apr_array_clear(context->node_references);
-  apr_array_clear(context->rep_references);
+  apr_array_clear(context->references);
   apr_array_clear(context->reps);
   SVN_ERR(svn_io_file_trunc(context->reps_file, 0, pool));
 
@@ -594,7 +586,7 @@ copy_rep_to_temp(pack_context_t *context
       reference->from = entry->item;
       reference->to.revision = rep_header->base_revision;
       reference->to.number = rep_header->base_item_index;
-      APR_ARRAY_PUSH(context->rep_references, reference_t *) = reference;
+      APR_ARRAY_PUSH(context->references, reference_t *) = reference;
     }
 
   /* copy the whole rep (including header!) to our temp file */
@@ -747,14 +739,8 @@ copy_node_to_temp(pack_context_t *contex
 
   if (noderev->data_rep && noderev->data_rep->revision >= context->start_rev)
     {
-      reference_t *reference = apr_pcalloc(context->info_pool,
-                                           sizeof(*reference));
-      reference->from = entry->item;
-      reference->to.revision = noderev->data_rep->revision;
-      reference->to.number = noderev->data_rep->item_index;
-      APR_ARRAY_PUSH(context->node_references, reference_t *) = reference;
-
-      path_order->rep_id = reference->to;
+      path_order->rep_id.revision = noderev->data_rep->revision;
+      path_order->rep_id.number = noderev->data_rep->item_index;
       path_order->expanded_size = noderev->data_rep->expanded_size
                                 ? noderev->data_rep->expanded_size
                                 : noderev->data_rep->size;
@@ -799,24 +785,11 @@ compare_path_order(const path_order_t * 
   return 0;
 }
 
-/* implements compare_fn_t.  Sort ascendingly by TO, FROM.
- */
-static int
-compare_references_to(const reference_t * const * lhs_p,
-                      const reference_t * const * rhs_p)
-{
-  const reference_t * lhs = *lhs_p;
-  const reference_t * rhs = *rhs_p;
-
-  int diff = svn_fs_fs__id_part_compare(&lhs->to, &rhs->to);
-  return diff ? diff : svn_fs_fs__id_part_compare(&lhs->from, &rhs->from);
-}
-
 /* implements compare_fn_t.  Sort ascendingly by FROM, TO.
  */
 static int
-compare_references_from(const reference_t * const * lhs_p,
-                        const reference_t * const * rhs_p)
+compare_references(const reference_t * const * lhs_p,
+                   const reference_t * const * rhs_p)
 {
   const reference_t * lhs = *lhs_p;
   const reference_t * rhs = *rhs_p;
@@ -828,8 +801,8 @@ compare_references_from(const reference_
 /* implements compare_fn_t.  Assume ascending order by FROM.
  */
 static int
-compare_ref_to_item_from(const reference_t * const * lhs_p,
-                         const svn_fs_fs__id_part_t * rhs_p)
+compare_ref_to_item(const reference_t * const * lhs_p,
+                    const svn_fs_fs__id_part_t * rhs_p)
 {
   return svn_fs_fs__id_part_compare(&(*lhs_p)->from, rhs_p);
 }
@@ -860,8 +833,7 @@ sort_reps(pack_context_t *context)
    */
   if (context->path_order->nelts == 0)
     {
-      assert(context->node_references->nelts == 0);
-      assert(context->rep_references->nelts == 0);
+      assert(context->references->nelts == 0);
       return;
     }
 
@@ -870,12 +842,9 @@ sort_reps(pack_context_t *context)
   qsort(context->path_order->elts, context->path_order->nelts,
         context->path_order->elt_size,
         (int (*)(const void *, const void *))compare_path_order);
-  qsort(context->rep_references->elts, context->rep_references->nelts,
-        context->rep_references->elt_size,
-        (int (*)(const void *, const void *))compare_references_from);
-  qsort(context->node_references->elts, context->node_references->nelts,
-        context->node_references->elt_size,
-        (int (*)(const void *, const void *))compare_references_to);
+  qsort(context->references->elts, context->references->nelts,
+        context->references->elt_size,
+        (int (*)(const void *, const void *))compare_references);
 
   /* Re-order noderevs like this:
    *
@@ -964,9 +933,9 @@ sort_reps(pack_context_t *context)
             temp[dest++] = path_order[i];
             path_order[i] = 0;
 
-            reference = svn_sort__array_lookup(context->rep_references,
+            reference = svn_sort__array_lookup(context->references,
                                                &rep_id, NULL,
-              (int (*)(const void *, const void *))compare_ref_to_item_from);
+              (int (*)(const void *, const void *))compare_ref_to_item);
             if (reference)
               rep_id = (*reference)->to;
           }


Reply via email to