Simplify error interface by allocating errors in a subpool of the global pool, since they must be freed explicitly anyway.
* libsvn_subr/svn_error.c: Split into error.c and pool.c, since errors are no longer especially related to pools. (And since svn_error.c was an anachronistic name.) * include/svn_error.h, libsvn_subr/error.c (svn_error_create, svn_error_createf, svn_error_clear): Remove pool argument. Allocate errors in a subpool of the global pool. All call sites changed. Also, collect file and line information in all cases; it's useful for debugging with gdb even if we don't display it. (svn_error_clear_all): Replace with svn_error_clear. All call sites changed. (svn_error_init_error_pool, svn_error__set_error_pool, svn_error__get_error_pool): Remove. * libsvn_subr/pool.c (svn_pool__inherit_error_pool): Remove. (svn_pool_create, svn_pool_clear): Remove all the error pool stuff. Use SVN_POOL_ROOTED_HERE to distinguish the top-level svn pool so we can reallocate the allocator mutex on clear. Abort with abort(), not abort_on_pool_failure(). * libsvn_fs/tree.c (conflict_err), libsvn_fs/fs_skels.c (skel_err), libsvn_fs/err.c, libsvn_fs/err.h (svn_fs__dberr, svn_fs__dberrf), libsvn_repos/load.c (stream_ran_dry, stream_malformed), libsvn_repos/commit.c (out_of_date), libsvn_repos/delta.c (not_a_dir_error), libsvn_delta/svndiff.c (count_and_verify_instructions), libsvn_ra_dav/ra_dav.h, libsvn_ra_dav/util.c (svn_ra_dav__convert_error), tests/libsvn_fs/fs-test.c (check_no_fs_error, verify_entry), tests/libsvn_subr/hashdump-test.c (check), tests/libsvn_delta/random-test.c (compare_files): Remove pool argument. All call sites changed. * mod_dav_svn/mod_dav_svn.c (dav_svn_header_parser): Remove; no need to init error pool now. * mod_dav_svn/repos.c (dav_svn_get_resource): No need to init error pool now. * libsvn_ra_dav/commit.c (put_baton_t): Don't need pool field any more. * libsvn_ra_dav/util.c (parser_ctx_t): Don't need pool field any more, and since this gets us down to just an svn_error_t *, just use an svn_error_t **. All usage sites changed accordingly.
Unify some duplicated code before things get out of sync:
* subversion/include/svn_types.h, subversion/libsvn_subr/validate.c (svn_mime_type_is_binary): New function. (svn_mime_type_validate): Renamed from svn_validate_mime_type, so we have a consistent prefix for mime-type stuff now. All callers changed.
* subversion/clients/cmdline/feedback.c (notify): Just call svn_mime_type_is_binary, instead of doing it by hand.
* subversion/libsvn_wc/questions.c (svn_wc_has_binary_prop): Same, and users may apply in person for a refund of the cycles wasted this way.