Make svn_wc_entry provide a pointer to const. Treat the values in the
hash returned by svn_wc_entries_read as pointers to const where
possible. This makes it harder to abuse/corrupt the entries cache.
* subversion/include/svn_wc.h
(svn_wc_entry): Make svn_wc_entry_t** parameter const.
(svn_wc_entry_dup, svn_wc_conflicted_p,
svn_wc_transmit_prop_deltas): Make svn_wc_entry_t* parameter const.
(struct svn_wc_entry_callbacks_t): Make svn_wc_entry_t* parameter of
found_entry const.
* subversion/libsvn_wc/entries.c
(svn_wc_entry): Make svn_wc_entry_t** parameter const.
(walker_helper, svn_wc_walk_entries): Make svn_wc_entry_t* const.
* subversion/libsvn_wc/merge.c (svn_wc_merge): Make svn_wc_entry_t*
const and use a local svn_wc_entry_t.
* subversion/libsvn_wc/props.c (svn_wc__get_existing_prop_reject_file,
svn_wc_merge_prop_diffs): Make svn_wc_entry_t* const.
* subversion/libsvn_wc/diff.c
(file_diff): Make svn_wc_entry_t* parameter const.
(directory_elements_diff, delete_entry, close_file, svn_wc_diff):
Make svn_wc_entry_t* const.
* subversion/libsvn_wc/copy.c
(svn_wc__remove_wcprops, copy_file_administratively,
copy_dir_administratively): Make svn_wc_entry_t* const.
* subversion/libsvn_wc/adm_crawler.c
(report_revisions, svn_wc_crawl_revisions,
svn_wc_transmit_text_deltas): Make svn_wc_entry_t* const.
(svn_wc_transmit_prop_deltas): Make svn_wc_entry_t* parameter const.
* subversion/libsvn_wc/log.c
(log_do_delete_entry, svn_wc_cleanup): Make svn_wc_entry_t* const.
(log_do_committed): Make svn_wc_entry_t* const. Use a local
duplicate entry. Allocate local entry on stack rather than heap.
(svn_wc__run_log): Make svn_wc_entry_t* const. Allocate local entry
on stack rather than heap.
* subversion/libsvn_wc/adm_ops.c
(svn_wc__do_update_cleanup, svn_wc_process_committed, erase_from_wc,
svn_wc_get_ancestry, svn_wc_add, svn_wc_remove_from_revision_control,
svn_wc_resolve_conflict, svn_wc_set_auth_file): Make svn_wc_entry_t*
const.
(mark_tree): Add comment about cache modification.
(svn_wc_delete): Make svn_wc_entry_t* const. Use local svn_wc_entry_t.
(svn_wc_revert): Make svn_wc_entry_t* const. Duplicate the entry.
(resolve_conflict_on_entry): Make svn_wc_entry_t* parameter const.
* subversion/libsvn_wc/status.c
(assemble_status, add_status_structure): Make svn_wc_entry_t*
parameter const.
(svn_wc_status, svn_wc_statuses): Make svn_wc_entry_t* const.
* subversion/libsvn_wc/adm_files.c (check_adm_exists): Make svn_wc_entry_t*
const.
* subversion/libsvn_wc/update_editor.c
(make_dir_baton, make_file_baton, add_directory, add_or_open_file,
apply_textdelta, svn_wc_install_file, check_wc_root): Make
svn_wc_entry_t* const.
* subversion/libsvn_wc/lock.c (svn_wc_adm_open): Make svn_wc_entry_t* const.
* subversion/libsvn_wc/questions.c
(svn_wc__timestamps_equal_p): Make svn_wc_entry_t* const.
(svn_wc_conflicted_p): Make svn_wc_entry_t* parameter const.
* subversion/libsvn_wc/translate.c
(expand_keyword): Make svn_wc_entry_t* parameter const.
(svn_wc__get_keywords): Make svn_wc_entry_t* const.
* subversion/libsvn_client/prop_commands.c
(recursive_propset, svn_client_propset, recursive_propget,
svn_client_propget, recursive_proplist, svn_client_proplist): Make
svn_wc_entry_t* const.
* subversion/libsvn_client/switch.c (svn_client_switch): Make
svn_wc_entry_t* const.
* subversion/libsvn_client/ra.c (get_committed_rev): Make svn_wc_entry_t*
const.
* subversion/libsvn_client/diff.c (merge_file_added, merge_dir_added,
convert_to_url, svn_client_merge): Make svn_wc_entry_t* const.
* subversion/libsvn_client/copy.c (repos_to_wc_copy, setup_copy): Make
svn_wc_entry_t* const. Merge rev 3225 from trunk.
* subversion/libsvn_client/log.c (svn_client_log): Make svn_wc_entry_t*
const.
* subversion/libsvn_client/revisions.c
(svn_client__get_revision_number):Make svn_wc_entry_t* const.
* subversion/libsvn_client/export.c (copy_versioned_files): Make
svn_wc_entry_t* const.
* subversion/libsvn_client/update.c (svn_client_update): Make svn_wc_entry_t*
const.
* subversion/libsvn_client/status.c (add_update_info_to_status_hash): Make
svn_wc_entry_t* const.
* subversion/libsvn_client/commit_util.c
(harvest_committables): Make svn_wc_entry_t* parameter const. Use
local revnum variable rather than modify entry.
(svn_client__harvest_committables, svn_client__get_copy_committables,
do_item_commit): Make svn_wc_entry_t* const.
* subversion/clients/cmdline/switch-cmd.c (svn_cl__switch): Make
svn_wc_entry_t* const.
* subversion/clients/cmdline/main.c (main): Make svn_wc_entry_t* const.
* subversion/clients/cmdline/info-cmd.c
(print_entry, info_found_entry_callback): Make svn_wc_entry_t*
parameter const.
(svn_cl__info): Make svn_wc_entry_t* const.
* subversion/clients/cmdline/propedit-cmd.c (svn_cl__propedit): Make
svn_wc_entry_t* const.
git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/issue-749-caching@843306 13f79535-47bb-0310-9956-ffa450edef68
30 files changed