Checkout Tools
  • last updated 6 hours ago
Constraints: committers
Constraints: files
Constraints: dates
Fix some Doxygen mark-up.
  1. … 2 more files in changeset.
Make SVN++ compile and work without warnings in maintainer mode on Linux/g++.

* build.conf (svnxx-tests): Repeat the library dependencies of libsvnxx,

since our generator isn't smart enough to inherit its dependencies

at link time.

[in subversion/bindings/cxx]

* include/svnxx/exception.hpp (message::message): Fix -Wshadow.

* src/aprwrap/pool.hpp (pool::safe_alloc): Likewise.

* src/exception.cpp

(checked_call..error_deleter): Likewise.

(handle_one_error..message_builder::message_builder): Likewise.

* tests/test_revision.cpp (assignment): Do not rely on the system_clock's

time_point precision being smaller than the time we store in svn::revision.

Cast it to the nearest second instead.

* tests/test_strings.cpp (generate_string_data): Fix -Wsign-compare.

  1. … 5 more files in changeset.
Move (some of the) standalone types into separate implementation headers

so that SVN++ can use them directly without exposing APR or other dependencies.

* subversion/include/svn_opt_impl.h: New file.

(svn_opt_revision_kind): Moved here from svn_opt.h

* subversion/include/svn_opt.h: Include svn_opt_impl.h.

(svn_opt_revision_kind): Moved away.

* subversion/include/svn_types_impl.h: New file.

(svn_error_t): Forward declaration.

(svn_node_kind_t, svn_tristate_t,

svn_revnum_t, SVN_INVALID_REVNUM, svn_depth_t): Moved here from svn_types.h.

* subversion/include/svn_types.h: Include svn_types_impl.h.

(svn_node_kind_t, svn_tristate_t,

svn_revnum_t, SVN_INVALID_REVNUM, svn_depth_t): Moved away.

[in subversion/bindings/cxx]

* include/svnxx/depth.hpp: Include svn_types_impl.h.

(depth): Define enum constant values from svn_depth_t.

* include/svnxx/exception.hpp: Include svn_types_impl.h.

(detail::svn_error): Remove forward declaration.

(detail::error_ptr): Use svn_error_t directly.

* include/svnxx/revision.hpp: Include svn_opt_impl.h and svn_types_impl.h.

(revision::number): Use svn_revnum_t for the underlying type and

SVN_INVALID_REVNUM for the 'invalid' enum constant value.

(revision::kind): Define enum constant values from svn_opt_revision_kind.

* include/svnxx/tristate.hpp: Include svn_types_impl.h.

(tristate::value): Define enum constant values from svn_tristate_t.

* src/exception.cpp

(detail::svn_error): Removed.

(impl::checked_call): Use svn_error_t instead of detail::svn_error.

  1. … 8 more files in changeset.
Minor documentation tweaks in SVN++.

[in subversion/bindings/cxx/include]

* svnxx.hpp: Add @file tag. Remove C++ check.

* svnxx/depth.hp: Add @file tag. Fix comment at end of include guard.

* svnxx/exception.hpp: Add @file tag. Change the title of the

svnxx_exceptions group and add a @brief description to avoid seeing the

heading-formatted description in summary lists. Also explain that

the implementation can throw standard exceptions.

* svnxx/init.hpp: Add @file tag. Remove C++ check.

* svnxx/noncopyable.hpp: Add @file tag.

* svnxx/tristate.hpp: Add @file tag. Remove C++ check.

  1. … 6 more files in changeset.
More SVN++ exceptions.

- Renamed 'svn::canceled' back to 'svn::cancelled', grammar

police please note.

- Renamed 'svn::cancel' to 'svn::stop_iteration' (thanks danielsh).

- Changed inhertiance of 'svn::allocation_failed'.

- Avoid allocating a 'wrapped-error' object when creating smart

pointers to svn_error_t.

- More tests etc.

[in subversion/bindings/cxx]

* include/svnxx/exception.hpp: Update docstring.

(allocation_failed): Derive from std::bad_alloc.

(detail::svn_error): Renamed from svn_error_t.

(detail::error_ptr): Updated.

(cancelled): Renamed from 'canceled'. All uses udpated.

(stop_iteration): Renamed from 'cancel'. All uses updated.

* private/exception-private.hpp

(detail::checked_call): Update docstring.

(detail::iteration_stopped): New.

* src/exception.cpp

(detail::svn_error): Define.

(checked_call): Create detail::error_ptr with custom deleters.

(best_message, error::code, error::name, error::compile_message):

Update for different structure of detail::error_ptr.

(stop_iteration::what): Implement.

* src/init.cpp

(allocation_failed_builder): New, used for constructing

svn::allocation_failed which now has no public constructors.

(handle_failed_allocation, create_root_pool): Use it.

* tests/test_exceptions.cpp

(thrown_error, propagate_error,

thtrown_cancelled, propagate_cancelled,

iteration_stopped_cancels, iteration_stopped): New test cases.

(catch_error, catch_cancelled): Updated.

  1. … 4 more files in changeset.
Reimplement exceptions in SVN++.

Instead of extracting error messages from the svn_error_t when the exception

is created, keep the svn_error_t embedded in the exception and use its contents

only when needed.

[in subversion/bindings/cxx]

* include/svnxx.hpp

(svn): Add namespace allias for apache:subversion:svnxx.

* include/svnxx/exception.hpp: Rewrite and rename and re-document everything.

* src/exception.cpp: Also reimplement everything.

* src/aprwrap/pool.hpp

(pool::iteration::get_pool): Renamed from pool::iteration::pool, to avoid

shadowing/redefinition of the "pool" name. Some compilers object.

* src/private/exception-private.hpp

(checked_call): Take a const parameter to emphasize that we're not

going to throw away the error, just wrap it in an exception.

* tests/test_exceptions.cpp: Update all tests.

  1. … 5 more files in changeset.
Move root pool creation completely to SVN++, because with exceptions,

we can report a memory allocation failure to the application.

[in subversion/bindings/cxx]

* include/svnxx/exception.hpp: Include <stdexcept>.

(svn::allocation_failed): New exception type.

* src/init.cpp: Include svnxx/exception.hpp.

(handle_failed_allocation): New; failed allocation handler for APR pools.

(create_root_pool): New.

(context::context): call create_root_pool().

  1. … 1 more file in changeset.
* subversion/bindings/cxx/include/svnxx/exception.hpp:

Include <memory> for std::shared_ptr.

Remove compatibility shared pointer wrappers from SVN++.

* subversion/bindings/cxx/include/svnxx/_compat.hpp: Removed.

* subversion/bindings/cxx/include/svnxx/noncopyable.hpp: New.

(class noncopyable): Moved definitoin here from _compat.hpp and into

the 'detail' namespace.

* subversion/bindings/cxx/include/svnxx/exception.hpp,

* subversion/bindings/cxx/src/exception.cpp:

Use 'std::shared_ptr' instead of the wrapper in the 'compat' namespace.

* subversion/bindings/cxx/src/aprwrap/pool.hpp:

Use 'detail::noncopyable' instead of 'compat::noncopyable'.

  1. … 4 more files in changeset.
Rename the C++HL library to SVN++, renaming files, namespaces and directories.


(SVNXX_INCLUDES): Renamed and changed from CXXHL_INCLUDES.

(COMPILE_SVNXX_CXX): Renamed and changed from COMPILE_CXXHL_CXX.

* build.conf

(options.private-includes): Update C++ bindings' header paths.

(libsvnxx): Rename and update target from libsvncxxhl.

* build/generator/

(Generator.write): Use 'svnxx-' instead of 'cxxhl-' for extra-install check.

* build/generator/

(WinGeneratorBase.get_win_includes): Check for 'svnxx', not 'cxxhl'.

* subversion/bindings/cxx/: Renamed from .../bindings/cxxhl/.

* subversion/bindings/cxx/include/svnxx/: Renamed from .../include/svncxxhl/.

* subversion/bindings/cxx/include/svnxx.hpp: Renamed from .../include/svncxxhl.hpp.

* subversion/bindings/cxx/**: Rename namespaces, include paths and guards.

  1. … 20 more files in changeset.