hwri...@apache.org wrote on Tue, Jan 31, 2012 at 23:40:06 -0000: > Author: hwright > Date: Tue Jan 31 23:40:06 2012 > New Revision: 1238862 > > URL: http://svn.apache.org/viewvc?rev=1238862&view=rev > Log: > Ev2 shims: Add a prop fetching function for svnrdump. This prevents crashes, > but doesn't improve any correctness--yet. > > * subversion/svnrdump/dump_editor.c > (fetch_props_func): New. > (svn_rdump__get_dump_editor): Use the prop fetching function. > > Modified: > subversion/trunk/subversion/svnrdump/dump_editor.c > > Modified: subversion/trunk/subversion/svnrdump/dump_editor.c > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/svnrdump/dump_editor.c?rev=1238862&r1=1238861&r2=1238862&view=diff > ============================================================================== > --- subversion/trunk/subversion/svnrdump/dump_editor.c (original) > +++ subversion/trunk/subversion/svnrdump/dump_editor.c Tue Jan 31 23:40:06 > 2012 > @@ -886,6 +886,45 @@ fetch_base_func(const char **filename, > return SVN_NO_ERROR; > } > > +static svn_error_t * > +fetch_props_func(apr_hash_t **props, > + void *baton, > + const char *path, > + svn_revnum_t base_revision, > + apr_pool_t *result_pool, > + apr_pool_t *scratch_pool) > +{ > + struct dump_edit_baton *eb = baton; > + svn_node_kind_t node_kind; > + > + SVN_ERR(svn_ra_check_path(eb->ra_session, path, base_revision, &node_kind, > + scratch_pool)); > + > + if (node_kind == svn_node_file) > + { > + SVN_ERR(svn_ra_get_file(eb->ra_session, path, base_revision, > + NULL, NULL, props, result_pool)); > + } > + else if (node_kind == svn_node_dir) > + { > + apr_array_header_t *tmp_props; > + > + SVN_ERR(svn_ra_get_dir2(eb->ra_session, NULL, NULL, props, path, > + base_revision, 0 /* Dirent fields */, > + result_pool)); > + tmp_props = svn_prop_hash_to_array(*props, result_pool); > + SVN_ERR(svn_categorize_props(tmp_props, NULL, NULL, &tmp_props, > + result_pool)); > + *props = svn_prop_array_to_hash(tmp_props, result_pool); > + } > + else > + { > + *props = apr_hash_make(result_pool);
Is it correct to return an empty hash for svn_node_unknown? > + } > + > + return SVN_NO_ERROR; > +}