You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by iv...@apache.org on 2014/06/20 11:11:01 UTC
svn commit: r1604109 -
/subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/transaction.c
Author: ivan
Date: Fri Jun 20 09:11:00 2014
New Revision: 1604109
URL: http://svn.apache.org/r1604109
Log:
On remove-log-addressing branch: Further cleanup now unused code.
* subversion/libsvn_fs_fs/transaction.c
(allocate_item_index, fnv1a_stream_baton_t, fnv1a_write_handler,
fnv1a_wrap_stream, fnv1a_checksum_finalize): Remove.
(rep_write_get_baton, rep_write_contents_close, write_container_rep,
write_container_delta_rep, write_final_rev,
write_final_changed_path_info): Inline allocate_item_index() and remove
FNV1a checksum calculation.
Modified:
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/transaction.c
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/transaction.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/transaction.c?rev=1604109&r1=1604108&r2=1604109&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/transaction.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/transaction.c Fri Jun 20 09:11:00 2014
@@ -1586,94 +1586,6 @@ svn_fs_fs__add_change(svn_fs_t *fs,
return svn_io_file_close(file, pool);
}
-/* Allocate an item index for the given MY_OFFSET in the transaction TXN_ID
- * of file system FS and return it in *ITEM_INDEX. For old formats, it
- * will simply return the offset as item index; in new formats, it will
- * increment the txn's item index counter file and store the mapping in
- * the proto index file. If FINAL_REVISION is not SVN_INVALID_REVNUM, use
- * it to determine whether to actually write to the proto-index.
- * Use POOL for allocations.
- */
-static svn_error_t *
-allocate_item_index(apr_uint64_t *item_index,
- svn_fs_t *fs,
- const svn_fs_fs__id_part_t *txn_id,
- svn_revnum_t final_revision,
- apr_off_t my_offset,
- apr_pool_t *pool)
-{
- if (final_revision == SVN_INVALID_REVNUM)
- final_revision = txn_id->revision + 1;
-
- *item_index = (apr_uint64_t)my_offset;
-
- return SVN_NO_ERROR;
-}
-
-/* Baton used by fnv1a_write_handler to calculate the FNV checksum
- * before passing the data on to the INNER_STREAM.
- */
-typedef struct fnv1a_stream_baton_t
-{
- svn_stream_t *inner_stream;
- svn_checksum_ctx_t *context;
-} fnv1a_stream_baton_t;
-
-/* Implement svn_write_fn_t.
- * Update checksum and pass data on to inner stream.
- */
-static svn_error_t *
-fnv1a_write_handler(void *baton,
- const char *data,
- apr_size_t *len)
-{
- fnv1a_stream_baton_t *b = baton;
-
- SVN_ERR(svn_checksum_update(b->context, data, *len));
- SVN_ERR(svn_stream_write(b->inner_stream, data, len));
-
- return SVN_NO_ERROR;
-}
-
-/* Return a stream that calculates a FNV checksum in *CONTEXT
- * over all data written to the stream and passes that data on
- * to INNER_STREAM. Allocate objects in POOL.
- */
-static svn_stream_t *
-fnv1a_wrap_stream(svn_checksum_ctx_t **context,
- svn_stream_t *inner_stream,
- apr_pool_t *pool)
-{
- svn_stream_t *outer_stream;
-
- fnv1a_stream_baton_t *baton = apr_pcalloc(pool, sizeof(*baton));
- baton->inner_stream = inner_stream;
- baton->context = svn_checksum_ctx_create(svn_checksum_fnv1a_32x4, pool);
- *context = baton->context;
-
- outer_stream = svn_stream_create(baton, pool);
- svn_stream_set_write(outer_stream, fnv1a_write_handler);
-
- return outer_stream;
-}
-
-/* Set *DIGEST to the FNV checksum calculated in CONTEXT.
- * Use SCRATCH_POOL for temporary allocations.
- */
-static svn_error_t *
-fnv1a_checksum_finalize(apr_uint32_t *digest,
- svn_checksum_ctx_t *context,
- apr_pool_t *scratch_pool)
-{
- svn_checksum_t *checksum;
-
- SVN_ERR(svn_checksum_final(&checksum, context, scratch_pool));
- SVN_ERR_ASSERT(checksum->kind == svn_checksum_fnv1a_32x4);
- *digest = ntohl(*(const apr_uint32_t *)(checksum->digest));
-
- return SVN_NO_ERROR;
-}
-
/* This baton is used by the representation writing streams. It keeps
track of the checksum information as well as the total size of the
representation so far. */
@@ -1710,9 +1622,6 @@ struct rep_write_baton
svn_checksum_ctx_t *md5_checksum_ctx;
svn_checksum_ctx_t *sha1_checksum_ctx;
- /* calculate a modified FNV-1a checksum of the on-disk representation */
- svn_checksum_ctx_t *fnv1a_checksum_ctx;
-
apr_pool_t *pool;
apr_pool_t *parent_pool;
@@ -1955,10 +1864,7 @@ rep_write_get_baton(struct rep_write_bat
b->pool));
b->file = file;
- b->rep_stream = fnv1a_wrap_stream(&b->fnv1a_checksum_ctx,
- svn_stream_from_aprfile2(file, TRUE,
- b->pool),
- b->pool);
+ b->rep_stream = svn_stream_from_aprfile2(file, TRUE, b->pool);
SVN_ERR(svn_fs_fs__get_file_offset(&b->rep_offset, file, b->pool));
@@ -2172,9 +2078,7 @@ rep_write_contents_close(void *baton)
{
/* Write out our cosmetic end marker. */
SVN_ERR(svn_stream_puts(b->rep_stream, "ENDREP\n"));
- SVN_ERR(allocate_item_index(&rep->item_index, b->fs, &rep->txn_id,
- SVN_INVALID_REVNUM, b->rep_offset,
- b->pool));
+ rep->item_index = b->rep_offset;
b->noderev->data_rep = rep;
}
@@ -2187,18 +2091,6 @@ rep_write_contents_close(void *baton)
FALSE, b->pool));
if (!old_rep)
{
- svn_fs_fs__p2l_entry_t entry;
-
- entry.offset = b->rep_offset;
- SVN_ERR(svn_fs_fs__get_file_offset(&offset, b->file, b->pool));
- entry.size = offset - b->rep_offset;
- entry.type = SVN_FS_FS__ITEM_TYPE_FILE_REP;
- entry.item.revision = SVN_INVALID_REVNUM;
- entry.item.number = rep->item_index;
- SVN_ERR(fnv1a_checksum_finalize(&entry.fnv1_checksum,
- b->fnv1a_checksum_ctx,
- b->pool));
-
SVN_ERR(store_sha1_rep_mapping(b->fs, b->noderev, b->pool));
}
@@ -2396,7 +2288,6 @@ write_container_rep(representation_t *re
{
svn_stream_t *stream;
struct write_container_baton *whb;
- svn_checksum_ctx_t *fnv1a_checksum_ctx;
representation_t *old_rep;
apr_off_t offset = 0;
@@ -2404,9 +2295,7 @@ write_container_rep(representation_t *re
whb = apr_pcalloc(pool, sizeof(*whb));
- whb->stream = fnv1a_wrap_stream(&fnv1a_checksum_ctx,
- svn_stream_from_aprfile2(file, TRUE, pool),
- pool);
+ whb->stream = svn_stream_from_aprfile2(file, TRUE, pool);
whb->size = 0;
whb->md5_ctx = svn_checksum_ctx_create(svn_checksum_md5, pool);
whb->sha1_ctx = svn_checksum_ctx_create(svn_checksum_sha1, pool);
@@ -2435,25 +2324,11 @@ write_container_rep(representation_t *re
}
else
{
- svn_fs_fs__p2l_entry_t entry;
-
/* Write out our cosmetic end marker. */
SVN_ERR(svn_stream_puts(whb->stream, "ENDREP\n"));
- SVN_ERR(allocate_item_index(&rep->item_index, fs, &rep->txn_id,
- final_revision, offset, pool));
-
- entry.offset = offset;
- SVN_ERR(svn_fs_fs__get_file_offset(&offset, file, pool));
- entry.size = offset - entry.offset;
- entry.type = item_type;
- entry.item.revision = SVN_INVALID_REVNUM;
- entry.item.number = rep->item_index;
- SVN_ERR(fnv1a_checksum_finalize(&entry.fnv1_checksum,
- fnv1a_checksum_ctx,
- pool));
-
/* update the representation */
+ rep->item_index = offset;
rep->size = whb->size;
rep->expanded_size = whb->size;
}
@@ -2494,7 +2369,6 @@ write_container_delta_rep(representation
svn_stream_t *stream;
representation_t *base_rep;
representation_t *old_rep;
- svn_checksum_ctx_t *fnv1a_checksum_ctx;
svn_stream_t *source;
svn_fs_fs__rep_header_t header = { 0 };
@@ -2527,9 +2401,7 @@ write_container_delta_rep(representation
header.type = svn_fs_fs__rep_self_delta;
}
- file_stream = fnv1a_wrap_stream(&fnv1a_checksum_ctx,
- svn_stream_from_aprfile2(file, TRUE, pool),
- pool);
+ file_stream = svn_stream_from_aprfile2(file, TRUE, pool);
SVN_ERR(svn_fs_fs__write_rep_header(&header, file_stream, pool));
SVN_ERR(svn_fs_fs__get_file_offset(&delta_start, file, pool));
@@ -2571,28 +2443,14 @@ write_container_delta_rep(representation
}
else
{
- svn_fs_fs__p2l_entry_t entry;
-
/* Write out our cosmetic end marker. */
SVN_ERR(svn_fs_fs__get_file_offset(&rep_end, file, pool));
SVN_ERR(svn_stream_puts(file_stream, "ENDREP\n"));
- SVN_ERR(allocate_item_index(&rep->item_index, fs, &rep->txn_id,
- final_revision, offset, pool));
-
- entry.offset = offset;
- SVN_ERR(svn_fs_fs__get_file_offset(&offset, file, pool));
- entry.size = offset - entry.offset;
- entry.type = item_type;
- entry.item.revision = SVN_INVALID_REVNUM;
- entry.item.number = rep->item_index;
- SVN_ERR(fnv1a_checksum_finalize(&entry.fnv1_checksum,
- fnv1a_checksum_ctx,
- pool));
-
/* update the representation */
rep->expanded_size = whb->size;
rep->size = rep_end - delta_start;
+ rep->item_index = offset;
}
return SVN_NO_ERROR;
@@ -2729,9 +2587,7 @@ write_final_rev(const svn_fs_id_t **new_
const svn_fs_id_t *new_id;
svn_fs_fs__id_part_t node_id, copy_id, rev_item;
fs_fs_data_t *ffd = fs->fsap_data;
- const svn_fs_fs__id_part_t *txn_id = svn_fs_fs__id_txn_id(id);
svn_stream_t *file_stream;
- svn_checksum_ctx_t *fnv1a_checksum_ctx;
*new_id_p = NULL;
@@ -2842,9 +2698,8 @@ write_final_rev(const svn_fs_id_t **new_
/* root nodes have a fixed ID in log addressing mode */
SVN_ERR(svn_fs_fs__get_file_offset(&my_offset, file, pool));
- SVN_ERR(allocate_item_index(&rev_item.number, fs, txn_id, rev,
- my_offset, pool));
+ rev_item.number = my_offset;
rev_item.revision = rev;
new_id = svn_fs_fs__id_rev_create(&node_id, ©_id, &rev_item, pool);
@@ -2892,9 +2747,7 @@ write_final_rev(const svn_fs_id_t **new_
if (at_root)
SVN_ERR(validate_root_noderev(fs, noderev, rev, pool));
- file_stream = fnv1a_wrap_stream(&fnv1a_checksum_ctx,
- svn_stream_from_aprfile2(file, TRUE, pool),
- pool);
+ file_stream = svn_stream_from_aprfile2(file, TRUE, pool);
SVN_ERR(svn_fs_fs__write_noderev(file_stream, noderev, ffd->format,
svn_fs_fs__fs_supports_mergeinfo(fs),
pool));
@@ -2921,14 +2774,11 @@ write_final_changed_path_info(apr_off_t
{
apr_off_t offset;
svn_stream_t *stream;
- svn_checksum_ctx_t *fnv1a_checksum_ctx;
SVN_ERR(svn_fs_fs__get_file_offset(&offset, file, pool));
- /* write to target file & calculate checksum */
- stream = fnv1a_wrap_stream(&fnv1a_checksum_ctx,
- svn_stream_from_aprfile2(file, TRUE, pool),
- pool);
+ /* write to target file */
+ stream = svn_stream_from_aprfile2(file, TRUE, pool);
SVN_ERR(svn_fs_fs__write_changes(stream, fs, changed_paths, TRUE, pool));
*offset_p = offset;