passenger 6.0.11 → 6.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +83 -1
- data/CONTRIBUTORS +3 -0
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-status +29 -4
- data/build/test_basics.rb +2 -2
- data/dev/copy_boost_headers +30 -15
- data/doc/templates/markdown.html.erb +2 -6
- data/package.json +19 -17
- data/resources/mime.types +1 -0
- data/resources/templates/error_renderer/with_details/dist/bundle.js +2 -33
- data/resources/templates/error_renderer/with_details/dist/styles.css +2 -2
- data/resources/templates/error_renderer/with_details/src/index.html.template +0 -2
- data/resources/templates/error_renderer/with_details/webpack.config.js +13 -16
- data/resources/templates/error_renderer/without_details/dist/bundle.js +0 -1
- data/resources/templates/error_renderer/without_details/dist/styles.css +1 -1
- data/resources/templates/error_renderer/without_details/webpack.config.js +13 -16
- data/resources/templates/standalone/server.erb +1 -0
- data/src/agent/Core/ApiServer.h +35 -0
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
- data/src/agent/Core/ApplicationPool/Options.h +5 -0
- data/src/agent/Core/ApplicationPool/Pool.h +9 -1
- data/src/agent/Core/Config.h +2 -1
- data/src/agent/Core/Controller/CheckoutSession.cpp +24 -13
- data/src/agent/Core/Controller/Config.h +6 -2
- data/src/agent/Core/Controller/InitRequest.cpp +2 -0
- data/src/agent/Core/Controller/InternalUtils.cpp +32 -6
- data/src/agent/Core/Controller.h +4 -1
- data/src/agent/Core/OptionParser.h +4 -0
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +7 -0
- data/src/agent/Core/SpawningKit/Config.h +13 -0
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +4 -0
- data/src/agent/Core/SpawningKit/Spawner.h +1 -0
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +4 -0
- data/src/agent/Watchdog/Config.h +2 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +18 -0
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +3 -0
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +11 -0
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +17 -0
- data/src/apache2_module/Hooks.cpp +1 -0
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +53 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +57 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +789 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +723 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +191 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +361 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +176 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +30 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +165 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +209 -76
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +149 -60
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +21 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +30 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +77 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +90 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +30 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +10 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +157 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1057 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +607 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +185 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +219 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +14 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +248 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +434 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +219 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +217 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +608 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +284 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +344 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +23 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +23 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +66 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +55 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +68 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +98 -113
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +71 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +210 -266
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +248 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +11 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +15 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +71 -87
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +46 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +2 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +36 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +73 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +235 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +17 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +14 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +31 -11
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +20 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +46 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +45 -38
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +0 -24
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +83 -83
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +43 -43
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +85 -85
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +68 -68
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +72 -62
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +19 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +2 -50
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +71 -70
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +15 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +84 -82
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +43 -43
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +26 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +85 -85
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +93 -93
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +51 -51
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +104 -104
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +91 -91
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +46 -46
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +51 -51
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +97 -97
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +63 -63
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +112 -31
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +22 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +59 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +9 -11
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +27 -21
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +34 -3
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +378 -36
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +97 -21
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/{to_std_category.hpp → std_category.hpp} +5 -55
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +2 -12
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +20 -9
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +16 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +12 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +24 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +10 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +39 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +26 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +8 -0
- data/src/nginx_module/ngx_http_passenger_module.c +1 -0
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/common.js +50 -29
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/cli-config.js +20 -20
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/npm-config.js +11 -11
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/syslog-config.js +3 -3
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config.js +8 -2
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/container.js +2 -1
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +174 -146
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/console.js +4 -2
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/file.js +15 -5
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/http.js +14 -4
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports.js +26 -24
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston.js +5 -5
- data/src/nodejs_supportlib/vendor-copy/winston/node_modules/async/package.json +4 -13
- data/src/nodejs_supportlib/vendor-copy/winston/node_modules/colors/package.json +19 -33
- data/src/nodejs_supportlib/vendor-copy/winston/node_modules/cycle/package.json +11 -29
- data/src/nodejs_supportlib/vendor-copy/winston/node_modules/eyes/package.json +12 -40
- data/src/nodejs_supportlib/vendor-copy/winston/node_modules/isstream/package.json +3 -12
- data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/lib/stack-trace.js +49 -24
- data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/package.json +4 -16
- data/src/nodejs_supportlib/vendor-copy/winston/package.json +11 -55
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +16 -12
- data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +7 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +8 -1
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +12 -0
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +8 -0
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +18 -18
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +7 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +28 -17
- data/src/ruby_supportlib/phusion_passenger.rb +5 -5
- metadata +49 -9
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_generic_value.hpp +0 -125
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/daily-rotate-file.js +0 -601
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/webhook.js +0 -146
- data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/LICENSE +0 -19
- data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/lib/pkginfo.js +0 -136
- data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/package.json +0 -56
@@ -1,6 +1,7 @@
|
|
1
1
|
/////////////////////////////////////////////////////////////////////////////
|
2
2
|
//
|
3
|
-
// (C) Copyright Ion Gaztanaga 2007-
|
3
|
+
// (C) Copyright Ion Gaztanaga 2007-2021
|
4
|
+
// (C) Copyright Daniel Steck 2021
|
4
5
|
//
|
5
6
|
// Distributed under the Boost Software License, Version 1.0.
|
6
7
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
@@ -212,7 +213,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
212
213
|
//! <b>Complexity</b>: Constant time.
|
213
214
|
//!
|
214
215
|
//! <b>Throws</b>: Nothing.
|
215
|
-
BOOST_INTRUSIVE_FORCEINLINE static node_ptr begin_node(const const_node_ptr & header)
|
216
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr begin_node(const const_node_ptr & header) BOOST_NOEXCEPT
|
216
217
|
{ return node_traits::get_left(header); }
|
217
218
|
|
218
219
|
//! <b>Requires</b>: 'header' is the header node of a tree.
|
@@ -222,7 +223,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
222
223
|
//! <b>Complexity</b>: Constant time.
|
223
224
|
//!
|
224
225
|
//! <b>Throws</b>: Nothing.
|
225
|
-
BOOST_INTRUSIVE_FORCEINLINE static node_ptr end_node(const const_node_ptr & header)
|
226
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr end_node(const const_node_ptr & header) BOOST_NOEXCEPT
|
226
227
|
{ return detail::uncast(header); }
|
227
228
|
|
228
229
|
//! <b>Requires</b>: 'header' is the header node of a tree.
|
@@ -246,7 +247,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
246
247
|
//! <b>Complexity</b>: Constant time.
|
247
248
|
//!
|
248
249
|
//! <b>Throws</b>: Nothing.
|
249
|
-
BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr & node)
|
250
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr & node) BOOST_NOEXCEPT
|
250
251
|
{ return !NodeTraits::get_parent(node); }
|
251
252
|
|
252
253
|
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
@@ -275,7 +276,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
275
276
|
//! node1 and node2 are not equivalent according to the ordering rules.
|
276
277
|
//!
|
277
278
|
//!Experimental function
|
278
|
-
static void swap_nodes(node_ptr node1, node_ptr node2)
|
279
|
+
static void swap_nodes(node_ptr node1, node_ptr node2) BOOST_NOEXCEPT
|
279
280
|
{
|
280
281
|
if(node1 == node2)
|
281
282
|
return;
|
@@ -299,7 +300,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
299
300
|
//! node1 and node2 are not equivalent according to the ordering rules.
|
300
301
|
//!
|
301
302
|
//!Experimental function
|
302
|
-
static void swap_nodes(node_ptr node1, node_ptr header1, node_ptr node2, node_ptr header2)
|
303
|
+
static void swap_nodes(node_ptr node1, node_ptr header1, node_ptr node2, node_ptr header2) BOOST_NOEXCEPT
|
303
304
|
{
|
304
305
|
if(node1 == node2)
|
305
306
|
return;
|
@@ -396,38 +397,47 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
396
397
|
NodeTraits::set_parent(node1, NodeTraits::get_parent(node2));
|
397
398
|
NodeTraits::set_parent(node2, temp);
|
398
399
|
|
399
|
-
//Now adjust
|
400
|
+
//Now adjust child nodes for newly inserted node 1
|
400
401
|
if((temp = NodeTraits::get_left(node1))){
|
401
402
|
NodeTraits::set_parent(temp, node1);
|
402
403
|
}
|
403
404
|
if((temp = NodeTraits::get_right(node1))){
|
404
405
|
NodeTraits::set_parent(temp, node1);
|
405
406
|
}
|
406
|
-
|
407
|
-
//The header has been already updated so avoid it
|
408
|
-
temp != header2){
|
409
|
-
if(NodeTraits::get_left(temp) == node2){
|
410
|
-
NodeTraits::set_left(temp, node1);
|
411
|
-
}
|
412
|
-
if(NodeTraits::get_right(temp) == node2){
|
413
|
-
NodeTraits::set_right(temp, node1);
|
414
|
-
}
|
415
|
-
}
|
416
|
-
//Now adjust adjacent nodes for newly inserted node 2
|
407
|
+
//Now adjust child nodes for newly inserted node 2
|
417
408
|
if((temp = NodeTraits::get_left(node2))){
|
418
409
|
NodeTraits::set_parent(temp, node2);
|
419
410
|
}
|
420
411
|
if((temp = NodeTraits::get_right(node2))){
|
421
412
|
NodeTraits::set_parent(temp, node2);
|
422
413
|
}
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
414
|
+
|
415
|
+
//Finally adjust parent nodes
|
416
|
+
if ((temp = NodeTraits::get_parent(node1)) == NodeTraits::get_parent(node2)) {
|
417
|
+
// special logic for the case where the nodes are siblings
|
418
|
+
const node_ptr left = NodeTraits::get_left(temp);
|
419
|
+
NodeTraits::set_left(temp, NodeTraits::get_right(temp));
|
420
|
+
NodeTraits::set_right(temp, left);
|
421
|
+
} else {
|
422
|
+
if ((temp = NodeTraits::get_parent(node1)) &&
|
423
|
+
//The header has been already updated so avoid it
|
424
|
+
temp != header2) {
|
425
|
+
if (NodeTraits::get_left(temp) == node2) {
|
426
|
+
NodeTraits::set_left(temp, node1);
|
427
|
+
}
|
428
|
+
if (NodeTraits::get_right(temp) == node2) {
|
429
|
+
NodeTraits::set_right(temp, node1);
|
430
|
+
}
|
428
431
|
}
|
429
|
-
if(NodeTraits::
|
430
|
-
|
432
|
+
if ((temp = NodeTraits::get_parent(node2)) &&
|
433
|
+
//The header has been already updated so avoid it
|
434
|
+
temp != header1) {
|
435
|
+
if (NodeTraits::get_left(temp) == node1) {
|
436
|
+
NodeTraits::set_left(temp, node2);
|
437
|
+
}
|
438
|
+
if (NodeTraits::get_right(temp) == node1) {
|
439
|
+
NodeTraits::set_right(temp, node2);
|
440
|
+
}
|
431
441
|
}
|
432
442
|
}
|
433
443
|
}
|
@@ -446,7 +456,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
446
456
|
//! new_node is not equivalent to node_to_be_replaced according to the
|
447
457
|
//! ordering rules. This function is faster than erasing and inserting
|
448
458
|
//! the node, since no rebalancing and comparison is needed. Experimental function
|
449
|
-
BOOST_INTRUSIVE_FORCEINLINE static void replace_node(node_ptr node_to_be_replaced, node_ptr new_node)
|
459
|
+
BOOST_INTRUSIVE_FORCEINLINE static void replace_node(node_ptr node_to_be_replaced, node_ptr new_node) BOOST_NOEXCEPT
|
450
460
|
{
|
451
461
|
if(node_to_be_replaced == new_node)
|
452
462
|
return;
|
@@ -467,7 +477,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
467
477
|
//! new_node is not equivalent to node_to_be_replaced according to the
|
468
478
|
//! ordering rules. This function is faster than erasing and inserting
|
469
479
|
//! the node, since no rebalancing or comparison is needed. Experimental function
|
470
|
-
static void replace_node(node_ptr node_to_be_replaced, node_ptr header, node_ptr new_node)
|
480
|
+
static void replace_node(node_ptr node_to_be_replaced, node_ptr header, node_ptr new_node) BOOST_NOEXCEPT
|
471
481
|
{
|
472
482
|
if(node_to_be_replaced == new_node)
|
473
483
|
return;
|
@@ -518,7 +528,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
518
528
|
//! <b>Complexity</b>: Average constant time.
|
519
529
|
//!
|
520
530
|
//! <b>Throws</b>: Nothing.
|
521
|
-
static node_ptr next_node(const node_ptr & node);
|
531
|
+
static node_ptr next_node(const node_ptr & node) BOOST_NOEXCEPT;
|
522
532
|
|
523
533
|
//! <b>Requires</b>: 'node' is a node from the tree except the leftmost node.
|
524
534
|
//!
|
@@ -527,7 +537,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
527
537
|
//! <b>Complexity</b>: Average constant time.
|
528
538
|
//!
|
529
539
|
//! <b>Throws</b>: Nothing.
|
530
|
-
static node_ptr prev_node(const node_ptr & node);
|
540
|
+
static node_ptr prev_node(const node_ptr & node) BOOST_NOEXCEPT;
|
531
541
|
|
532
542
|
//! <b>Requires</b>: 'node' is a node of a tree but not the header.
|
533
543
|
//!
|
@@ -557,7 +567,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
557
567
|
//! <b>Throws</b>: Nothing.
|
558
568
|
//!
|
559
569
|
//! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
|
560
|
-
BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr node)
|
570
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr node) BOOST_NOEXCEPT
|
561
571
|
{
|
562
572
|
NodeTraits::set_parent(node, node_ptr());
|
563
573
|
NodeTraits::set_left(node, node_ptr());
|
@@ -586,7 +596,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
586
596
|
//! <b>Throws</b>: Nothing.
|
587
597
|
//!
|
588
598
|
//! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
|
589
|
-
BOOST_INTRUSIVE_FORCEINLINE static void init_header(node_ptr header)
|
599
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init_header(node_ptr header) BOOST_NOEXCEPT
|
590
600
|
{
|
591
601
|
NodeTraits::set_parent(header, node_ptr());
|
592
602
|
NodeTraits::set_left(header, header);
|
@@ -603,9 +613,9 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
603
613
|
//! <b>Complexity</b>: Linear to the number of element of the source tree plus the.
|
604
614
|
//! number of elements of tree target tree when calling this function.
|
605
615
|
//!
|
606
|
-
//! <b>Throws</b>:
|
616
|
+
//! <b>Throws</b>: Nothing.
|
607
617
|
template<class Disposer>
|
608
|
-
static void clear_and_dispose(const node_ptr & header, Disposer disposer)
|
618
|
+
static void clear_and_dispose(const node_ptr & header, Disposer disposer) BOOST_NOEXCEPT
|
609
619
|
{
|
610
620
|
node_ptr source_root = NodeTraits::get_parent(header);
|
611
621
|
if(!source_root)
|
@@ -627,7 +637,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
627
637
|
//! only be used for more unlink_leftmost_without_rebalance calls.
|
628
638
|
//! This function is normally used to achieve a step by step
|
629
639
|
//! controlled destruction of the tree.
|
630
|
-
static node_ptr unlink_leftmost_without_rebalance(node_ptr header)
|
640
|
+
static node_ptr unlink_leftmost_without_rebalance(node_ptr header) BOOST_NOEXCEPT
|
631
641
|
{
|
632
642
|
node_ptr leftmost = NodeTraits::get_left(header);
|
633
643
|
if (leftmost == header)
|
@@ -664,7 +674,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
664
674
|
//! <b>Complexity</b>: Linear time.
|
665
675
|
//!
|
666
676
|
//! <b>Throws</b>: Nothing.
|
667
|
-
static std::size_t size(const const_node_ptr & header)
|
677
|
+
static std::size_t size(const const_node_ptr & header) BOOST_NOEXCEPT
|
668
678
|
{
|
669
679
|
node_ptr beg(begin_node(header));
|
670
680
|
node_ptr end(end_node(header));
|
@@ -682,7 +692,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
682
692
|
//! <b>Complexity</b>: Constant.
|
683
693
|
//!
|
684
694
|
//! <b>Throws</b>: Nothing.
|
685
|
-
static void swap_tree(node_ptr header1, node_ptr header2)
|
695
|
+
static void swap_tree(node_ptr header1, node_ptr header2) BOOST_NOEXCEPT
|
686
696
|
{
|
687
697
|
if(header1 == header2)
|
688
698
|
return;
|
@@ -730,7 +740,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
730
740
|
//! <b>Complexity</b>: Constant.
|
731
741
|
//!
|
732
742
|
//! <b>Throws</b>: Nothing.
|
733
|
-
static bool is_header(const const_node_ptr & p);
|
743
|
+
static bool is_header(const const_node_ptr & p) BOOST_NOEXCEPT;
|
734
744
|
#endif
|
735
745
|
|
736
746
|
//! <b>Requires</b>: "header" must be the header node of a tree.
|
@@ -954,7 +964,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
954
964
|
//! previously executed to fill "commit_data". No value should be inserted or
|
955
965
|
//! erased between the "insert_check" and "insert_commit" calls.
|
956
966
|
BOOST_INTRUSIVE_FORCEINLINE static void insert_unique_commit
|
957
|
-
(node_ptr header, node_ptr new_value, const insert_commit_data &commit_data)
|
967
|
+
(node_ptr header, node_ptr new_value, const insert_commit_data &commit_data) BOOST_NOEXCEPT
|
958
968
|
{ return insert_commit(header, new_value, commit_data); }
|
959
969
|
|
960
970
|
//! <b>Requires</b>: "header" must be the header node of a tree.
|
@@ -1194,7 +1204,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1194
1204
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1195
1205
|
, std::size_t *pdepth = 0
|
1196
1206
|
#endif
|
1197
|
-
)
|
1207
|
+
) BOOST_NOEXCEPT
|
1198
1208
|
{
|
1199
1209
|
insert_commit_data commit_data;
|
1200
1210
|
insert_before_check(header, pos, commit_data, pdepth);
|
@@ -1220,7 +1230,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1220
1230
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1221
1231
|
, std::size_t *pdepth = 0
|
1222
1232
|
#endif
|
1223
|
-
)
|
1233
|
+
) BOOST_NOEXCEPT
|
1224
1234
|
{
|
1225
1235
|
insert_commit_data commit_data;
|
1226
1236
|
push_back_check(header, commit_data, pdepth);
|
@@ -1245,7 +1255,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1245
1255
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1246
1256
|
, std::size_t *pdepth = 0
|
1247
1257
|
#endif
|
1248
|
-
)
|
1258
|
+
) BOOST_NOEXCEPT
|
1249
1259
|
{
|
1250
1260
|
insert_commit_data commit_data;
|
1251
1261
|
push_front_check(header, commit_data, pdepth);
|
@@ -1261,7 +1271,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1261
1271
|
//! <b>Complexity</b>: Logarithmic to the number of nodes in the tree.
|
1262
1272
|
//!
|
1263
1273
|
//! <b>Throws</b>: Nothing.
|
1264
|
-
static std::size_t depth(const_node_ptr node)
|
1274
|
+
static std::size_t depth(const_node_ptr node) BOOST_NOEXCEPT
|
1265
1275
|
{
|
1266
1276
|
std::size_t depth = 0;
|
1267
1277
|
node_ptr p_parent;
|
@@ -1315,7 +1325,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1315
1325
|
//! <b>Complexity</b>: Amortized constant time.
|
1316
1326
|
//!
|
1317
1327
|
//! <b>Throws</b>: Nothing.
|
1318
|
-
BOOST_INTRUSIVE_FORCEINLINE static void erase(node_ptr header, node_ptr z)
|
1328
|
+
BOOST_INTRUSIVE_FORCEINLINE static void erase(node_ptr header, node_ptr z) BOOST_NOEXCEPT
|
1319
1329
|
{
|
1320
1330
|
data_for_rebalance ignored;
|
1321
1331
|
erase(header, z, ignored);
|
@@ -1365,7 +1375,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1365
1375
|
//! <b>Complexity</b>: Average complexity is constant time.
|
1366
1376
|
//!
|
1367
1377
|
//! <b>Throws</b>: Nothing.
|
1368
|
-
static void unlink(node_ptr node)
|
1378
|
+
static void unlink(node_ptr node) BOOST_NOEXCEPT
|
1369
1379
|
{
|
1370
1380
|
node_ptr x = NodeTraits::get_parent(node);
|
1371
1381
|
if(x){
|
@@ -1382,7 +1392,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1382
1392
|
//! <b>Throws</b>: Nothing.
|
1383
1393
|
//!
|
1384
1394
|
//! <b>Complexity</b>: Linear.
|
1385
|
-
static void rebalance(node_ptr header)
|
1395
|
+
static void rebalance(node_ptr header) BOOST_NOEXCEPT
|
1386
1396
|
{
|
1387
1397
|
node_ptr root = NodeTraits::get_parent(header);
|
1388
1398
|
if(root){
|
@@ -1399,7 +1409,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1399
1409
|
//! <b>Throws</b>: Nothing.
|
1400
1410
|
//!
|
1401
1411
|
//! <b>Complexity</b>: Linear.
|
1402
|
-
static node_ptr rebalance_subtree(node_ptr old_root)
|
1412
|
+
static node_ptr rebalance_subtree(node_ptr old_root) BOOST_NOEXCEPT
|
1403
1413
|
{
|
1404
1414
|
//Taken from:
|
1405
1415
|
//"Tree rebalancing in optimal time and space"
|
@@ -1585,7 +1595,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1585
1595
|
//! <b>Complexity</b>: Linear time.
|
1586
1596
|
//!
|
1587
1597
|
//! <b>Throws</b>: Nothing.
|
1588
|
-
static std::size_t subtree_size(const const_node_ptr & subtree)
|
1598
|
+
static std::size_t subtree_size(const const_node_ptr & subtree) BOOST_NOEXCEPT
|
1589
1599
|
{
|
1590
1600
|
std::size_t count = 0;
|
1591
1601
|
if (subtree){
|
@@ -1628,7 +1638,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1628
1638
|
//! <b>Complexity</b>: Constant.
|
1629
1639
|
//!
|
1630
1640
|
//! <b>Throws</b>: Nothing.
|
1631
|
-
BOOST_INTRUSIVE_FORCEINLINE static bool is_left_child(const node_ptr & p)
|
1641
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool is_left_child(const node_ptr & p) BOOST_NOEXCEPT
|
1632
1642
|
{ return NodeTraits::get_left(NodeTraits::get_parent(p)) == p; }
|
1633
1643
|
|
1634
1644
|
//! <b>Requires</b>: p is a node of a tree.
|
@@ -1638,7 +1648,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1638
1648
|
//! <b>Complexity</b>: Constant.
|
1639
1649
|
//!
|
1640
1650
|
//! <b>Throws</b>: Nothing.
|
1641
|
-
BOOST_INTRUSIVE_FORCEINLINE static bool is_right_child(const node_ptr & p)
|
1651
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool is_right_child(const node_ptr & p) BOOST_NOEXCEPT
|
1642
1652
|
{ return NodeTraits::get_right(NodeTraits::get_parent(p)) == p; }
|
1643
1653
|
|
1644
1654
|
static void insert_before_check
|
@@ -1665,7 +1675,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1665
1675
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1666
1676
|
, std::size_t *pdepth = 0
|
1667
1677
|
#endif
|
1668
|
-
)
|
1678
|
+
) BOOST_NOEXCEPT
|
1669
1679
|
{
|
1670
1680
|
node_ptr prev(NodeTraits::get_right(header));
|
1671
1681
|
if(pdepth){
|
@@ -1680,7 +1690,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1680
1690
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1681
1691
|
, std::size_t *pdepth = 0
|
1682
1692
|
#endif
|
1683
|
-
)
|
1693
|
+
) BOOST_NOEXCEPT
|
1684
1694
|
{
|
1685
1695
|
node_ptr pos(NodeTraits::get_left(header));
|
1686
1696
|
if(pdepth){
|
@@ -1758,7 +1768,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1758
1768
|
}
|
1759
1769
|
|
1760
1770
|
static void insert_commit
|
1761
|
-
(node_ptr header, node_ptr new_node, const insert_commit_data &commit_data)
|
1771
|
+
(node_ptr header, node_ptr new_node, const insert_commit_data &commit_data) BOOST_NOEXCEPT
|
1762
1772
|
{
|
1763
1773
|
//Check if commit_data has not been initialized by a insert_unique_check call.
|
1764
1774
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(commit_data.node != node_ptr());
|
@@ -1784,7 +1794,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1784
1794
|
}
|
1785
1795
|
|
1786
1796
|
//Fix header and own's parent data when replacing x with own, providing own's old data with parent
|
1787
|
-
static void set_child(node_ptr header, node_ptr new_child, node_ptr new_parent, const bool link_left)
|
1797
|
+
static void set_child(node_ptr header, node_ptr new_child, node_ptr new_parent, const bool link_left) BOOST_NOEXCEPT
|
1788
1798
|
{
|
1789
1799
|
if(new_parent == header)
|
1790
1800
|
NodeTraits::set_parent(header, new_child);
|
@@ -1795,7 +1805,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1795
1805
|
}
|
1796
1806
|
|
1797
1807
|
// rotate p to left (no header and p's parent fixup)
|
1798
|
-
static void rotate_left_no_parent_fix(node_ptr p, node_ptr p_right)
|
1808
|
+
static void rotate_left_no_parent_fix(node_ptr p, node_ptr p_right) BOOST_NOEXCEPT
|
1799
1809
|
{
|
1800
1810
|
node_ptr p_right_left(NodeTraits::get_left(p_right));
|
1801
1811
|
NodeTraits::set_right(p, p_right_left);
|
@@ -1807,7 +1817,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1807
1817
|
}
|
1808
1818
|
|
1809
1819
|
// rotate p to left (with header and p's parent fixup)
|
1810
|
-
static void rotate_left(node_ptr p, node_ptr p_right, node_ptr p_parent, node_ptr header)
|
1820
|
+
static void rotate_left(node_ptr p, node_ptr p_right, node_ptr p_parent, node_ptr header) BOOST_NOEXCEPT
|
1811
1821
|
{
|
1812
1822
|
const bool p_was_left(NodeTraits::get_left(p_parent) == p);
|
1813
1823
|
rotate_left_no_parent_fix(p, p_right);
|
@@ -1816,7 +1826,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1816
1826
|
}
|
1817
1827
|
|
1818
1828
|
// rotate p to right (no header and p's parent fixup)
|
1819
|
-
static void rotate_right_no_parent_fix(node_ptr p, node_ptr p_left)
|
1829
|
+
static void rotate_right_no_parent_fix(node_ptr p, node_ptr p_left) BOOST_NOEXCEPT
|
1820
1830
|
{
|
1821
1831
|
node_ptr p_left_right(NodeTraits::get_right(p_left));
|
1822
1832
|
NodeTraits::set_left(p, p_left_right);
|
@@ -1828,7 +1838,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1828
1838
|
}
|
1829
1839
|
|
1830
1840
|
// rotate p to right (with header and p's parent fixup)
|
1831
|
-
static void rotate_right(node_ptr p, node_ptr p_left, node_ptr p_parent, node_ptr header)
|
1841
|
+
static void rotate_right(node_ptr p, node_ptr p_left, node_ptr p_parent, node_ptr header) BOOST_NOEXCEPT
|
1832
1842
|
{
|
1833
1843
|
const bool p_was_left(NodeTraits::get_left(p_parent) == p);
|
1834
1844
|
rotate_right_no_parent_fix(p, p_left);
|
@@ -1838,7 +1848,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1838
1848
|
|
1839
1849
|
private:
|
1840
1850
|
|
1841
|
-
static void subtree_to_vine(node_ptr vine_tail, std::size_t &size)
|
1851
|
+
static void subtree_to_vine(node_ptr vine_tail, std::size_t &size) BOOST_NOEXCEPT
|
1842
1852
|
{
|
1843
1853
|
//Inspired by LibAVL:
|
1844
1854
|
//It uses a clever optimization for trees with parent pointers.
|
@@ -1865,7 +1875,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1865
1875
|
size = len;
|
1866
1876
|
}
|
1867
1877
|
|
1868
|
-
static void compress_subtree(node_ptr scanner, std::size_t count)
|
1878
|
+
static void compress_subtree(node_ptr scanner, std::size_t count) BOOST_NOEXCEPT
|
1869
1879
|
{
|
1870
1880
|
while(count--){ //compress "count" spine nodes in the tree with pseudo-root scanner
|
1871
1881
|
node_ptr child = NodeTraits::get_right(scanner);
|
@@ -1882,7 +1892,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1882
1892
|
}
|
1883
1893
|
}
|
1884
1894
|
|
1885
|
-
static void vine_to_subtree(node_ptr super_root, std::size_t count)
|
1895
|
+
static void vine_to_subtree(node_ptr super_root, std::size_t count) BOOST_NOEXCEPT
|
1886
1896
|
{
|
1887
1897
|
const std::size_t one_szt = 1u;
|
1888
1898
|
std::size_t leaf_nodes = count + one_szt - std::size_t(one_szt << detail::floor_log2(count + one_szt));
|
@@ -1909,7 +1919,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1909
1919
|
//! <b>Complexity</b>: Logarithmic.
|
1910
1920
|
//!
|
1911
1921
|
//! <b>Throws</b>: Nothing.
|
1912
|
-
static node_ptr get_root(const node_ptr & node)
|
1922
|
+
static node_ptr get_root(const node_ptr & node) BOOST_NOEXCEPT
|
1913
1923
|
{
|
1914
1924
|
BOOST_INTRUSIVE_INVARIANT_ASSERT((!inited(node)));
|
1915
1925
|
node_ptr x = NodeTraits::get_parent(node);
|
@@ -2001,7 +2011,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
2001
2011
|
}
|
2002
2012
|
|
2003
2013
|
template<class Disposer>
|
2004
|
-
static void dispose_subtree(node_ptr x, Disposer disposer)
|
2014
|
+
static void dispose_subtree(node_ptr x, Disposer disposer) BOOST_NOEXCEPT
|
2005
2015
|
{
|
2006
2016
|
while (x){
|
2007
2017
|
node_ptr save(NodeTraits::get_left(x));
|
@@ -67,7 +67,7 @@ class circular_list_algorithms
|
|
67
67
|
//! <b>Complexity</b>: Constant
|
68
68
|
//!
|
69
69
|
//! <b>Throws</b>: Nothing.
|
70
|
-
BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr this_node)
|
70
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr this_node) BOOST_NOEXCEPT
|
71
71
|
{
|
72
72
|
const node_ptr null_node = node_ptr();
|
73
73
|
NodeTraits::set_next(this_node, null_node);
|
@@ -80,7 +80,7 @@ class circular_list_algorithms
|
|
80
80
|
//! <b>Complexity</b>: Constant
|
81
81
|
//!
|
82
82
|
//! <b>Throws</b>: Nothing.
|
83
|
-
BOOST_INTRUSIVE_FORCEINLINE static bool inited(const const_node_ptr &this_node)
|
83
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool inited(const const_node_ptr &this_node) BOOST_NOEXCEPT
|
84
84
|
{ return !NodeTraits::get_next(this_node); }
|
85
85
|
|
86
86
|
//! <b>Effects</b>: Constructs an empty list, making this_node the only
|
@@ -91,13 +91,12 @@ class circular_list_algorithms
|
|
91
91
|
//! <b>Complexity</b>: Constant
|
92
92
|
//!
|
93
93
|
//! <b>Throws</b>: Nothing.
|
94
|
-
BOOST_INTRUSIVE_FORCEINLINE static void init_header(node_ptr this_node)
|
94
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init_header(node_ptr this_node) BOOST_NOEXCEPT
|
95
95
|
{
|
96
96
|
NodeTraits::set_next(this_node, this_node);
|
97
97
|
NodeTraits::set_previous(this_node, this_node);
|
98
98
|
}
|
99
99
|
|
100
|
-
|
101
100
|
//! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
|
102
101
|
//!
|
103
102
|
//! <b>Effects</b>: Returns true is "this_node" is the only node of a circular list:
|
@@ -106,7 +105,7 @@ class circular_list_algorithms
|
|
106
105
|
//! <b>Complexity</b>: Constant
|
107
106
|
//!
|
108
107
|
//! <b>Throws</b>: Nothing.
|
109
|
-
BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr &this_node)
|
108
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr &this_node) BOOST_NOEXCEPT
|
110
109
|
{
|
111
110
|
node_ptr next = NodeTraits::get_next(this_node);
|
112
111
|
return !next || next == this_node;
|
@@ -120,7 +119,7 @@ class circular_list_algorithms
|
|
120
119
|
//! <b>Complexity</b>: Linear
|
121
120
|
//!
|
122
121
|
//! <b>Throws</b>: Nothing.
|
123
|
-
static std::size_t count(const const_node_ptr &this_node)
|
122
|
+
static std::size_t count(const const_node_ptr &this_node) BOOST_NOEXCEPT
|
124
123
|
{
|
125
124
|
std::size_t result = 0;
|
126
125
|
const_node_ptr p = this_node;
|
@@ -138,7 +137,7 @@ class circular_list_algorithms
|
|
138
137
|
//! <b>Complexity</b>: Constant
|
139
138
|
//!
|
140
139
|
//! <b>Throws</b>: Nothing.
|
141
|
-
BOOST_INTRUSIVE_FORCEINLINE static node_ptr unlink(node_ptr this_node)
|
140
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr unlink(node_ptr this_node) BOOST_NOEXCEPT
|
142
141
|
{
|
143
142
|
node_ptr next(NodeTraits::get_next(this_node));
|
144
143
|
node_ptr prev(NodeTraits::get_previous(this_node));
|
@@ -154,7 +153,7 @@ class circular_list_algorithms
|
|
154
153
|
//! <b>Complexity</b>: Constant
|
155
154
|
//!
|
156
155
|
//! <b>Throws</b>: Nothing.
|
157
|
-
BOOST_INTRUSIVE_FORCEINLINE static void unlink(node_ptr b, node_ptr e)
|
156
|
+
BOOST_INTRUSIVE_FORCEINLINE static void unlink(node_ptr b, node_ptr e) BOOST_NOEXCEPT
|
158
157
|
{
|
159
158
|
if (b != e) {
|
160
159
|
node_ptr prevb(NodeTraits::get_previous(b));
|
@@ -170,7 +169,7 @@ class circular_list_algorithms
|
|
170
169
|
//! <b>Complexity</b>: Constant
|
171
170
|
//!
|
172
171
|
//! <b>Throws</b>: Nothing.
|
173
|
-
BOOST_INTRUSIVE_FORCEINLINE static void link_before(node_ptr nxt_node, node_ptr this_node)
|
172
|
+
BOOST_INTRUSIVE_FORCEINLINE static void link_before(node_ptr nxt_node, node_ptr this_node) BOOST_NOEXCEPT
|
174
173
|
{
|
175
174
|
node_ptr prev(NodeTraits::get_previous(nxt_node));
|
176
175
|
NodeTraits::set_previous(this_node, prev);
|
@@ -189,7 +188,7 @@ class circular_list_algorithms
|
|
189
188
|
//! <b>Complexity</b>: Constant
|
190
189
|
//!
|
191
190
|
//! <b>Throws</b>: Nothing.
|
192
|
-
BOOST_INTRUSIVE_FORCEINLINE static void link_after(node_ptr prev_node, node_ptr this_node)
|
191
|
+
BOOST_INTRUSIVE_FORCEINLINE static void link_after(node_ptr prev_node, node_ptr this_node) BOOST_NOEXCEPT
|
193
192
|
{
|
194
193
|
node_ptr next(NodeTraits::get_next(prev_node));
|
195
194
|
NodeTraits::set_previous(this_node, prev_node);
|
@@ -211,7 +210,7 @@ class circular_list_algorithms
|
|
211
210
|
//! <b>Complexity</b>: Constant
|
212
211
|
//!
|
213
212
|
//! <b>Throws</b>: Nothing.
|
214
|
-
static void swap_nodes(node_ptr this_node, node_ptr other_node)
|
213
|
+
static void swap_nodes(node_ptr this_node, node_ptr other_node) BOOST_NOEXCEPT
|
215
214
|
{
|
216
215
|
if (other_node == this_node)
|
217
216
|
return;
|
@@ -252,9 +251,9 @@ class circular_list_algorithms
|
|
252
251
|
//! <b>Complexity</b>: Constant
|
253
252
|
//!
|
254
253
|
//! <b>Throws</b>: Nothing.
|
255
|
-
static void transfer(node_ptr p, node_ptr b, node_ptr e)
|
254
|
+
static void transfer(node_ptr p, node_ptr b, node_ptr e) BOOST_NOEXCEPT
|
256
255
|
{
|
257
|
-
if (b != e) {
|
256
|
+
if (b != e && p != b && p != e) {
|
258
257
|
node_ptr prev_p(NodeTraits::get_previous(p));
|
259
258
|
node_ptr prev_b(NodeTraits::get_previous(b));
|
260
259
|
node_ptr prev_e(NodeTraits::get_previous(e));
|
@@ -277,7 +276,7 @@ class circular_list_algorithms
|
|
277
276
|
//! <b>Complexity</b>: Constant
|
278
277
|
//!
|
279
278
|
//! <b>Throws</b>: Nothing.
|
280
|
-
static void transfer(node_ptr p, node_ptr i)
|
279
|
+
static void transfer(node_ptr p, node_ptr i) BOOST_NOEXCEPT
|
281
280
|
{
|
282
281
|
node_ptr n(NodeTraits::get_next(i));
|
283
282
|
if(n != p && i != p){
|
@@ -298,7 +297,7 @@ class circular_list_algorithms
|
|
298
297
|
//! <b>Throws</b>: Nothing.
|
299
298
|
//!
|
300
299
|
//! <b>Complexity</b>: This function is linear time.
|
301
|
-
static void reverse(node_ptr p)
|
300
|
+
static void reverse(node_ptr p) BOOST_NOEXCEPT
|
302
301
|
{
|
303
302
|
node_ptr f(NodeTraits::get_next(p));
|
304
303
|
node_ptr i(NodeTraits::get_next(f)), e(p);
|
@@ -316,7 +315,7 @@ class circular_list_algorithms
|
|
316
315
|
//! <b>Throws</b>: Nothing.
|
317
316
|
//!
|
318
317
|
//! <b>Complexity</b>: Linear to the number of moved positions.
|
319
|
-
static void move_backwards(node_ptr p, std::size_t n)
|
318
|
+
static void move_backwards(node_ptr p, std::size_t n) BOOST_NOEXCEPT
|
320
319
|
{
|
321
320
|
//Null shift, nothing to do
|
322
321
|
if(!n) return;
|
@@ -336,7 +335,7 @@ class circular_list_algorithms
|
|
336
335
|
//! <b>Throws</b>: Nothing.
|
337
336
|
//!
|
338
337
|
//! <b>Complexity</b>: Linear to the number of moved positions.
|
339
|
-
static void move_forward(node_ptr p, std::size_t n)
|
338
|
+
static void move_forward(node_ptr p, std::size_t n) BOOST_NOEXCEPT
|
340
339
|
{
|
341
340
|
//Null shift, nothing to do
|
342
341
|
if(!n) return;
|
@@ -359,7 +358,7 @@ class circular_list_algorithms
|
|
359
358
|
//! <b>Complexity</b>: Linear
|
360
359
|
//!
|
361
360
|
//! <b>Throws</b>: Nothing.
|
362
|
-
static std::size_t distance(const const_node_ptr &f, const const_node_ptr &l)
|
361
|
+
static std::size_t distance(const const_node_ptr &f, const const_node_ptr &l) BOOST_NOEXCEPT
|
363
362
|
{
|
364
363
|
const_node_ptr i(f);
|
365
364
|
std::size_t result = 0;
|
@@ -435,14 +434,14 @@ class circular_list_algorithms
|
|
435
434
|
}
|
436
435
|
|
437
436
|
private:
|
438
|
-
BOOST_INTRUSIVE_FORCEINLINE static void swap_prev(node_ptr this_node, node_ptr other_node)
|
437
|
+
BOOST_INTRUSIVE_FORCEINLINE static void swap_prev(node_ptr this_node, node_ptr other_node) BOOST_NOEXCEPT
|
439
438
|
{
|
440
439
|
node_ptr temp(NodeTraits::get_previous(this_node));
|
441
440
|
NodeTraits::set_previous(this_node, NodeTraits::get_previous(other_node));
|
442
441
|
NodeTraits::set_previous(other_node, temp);
|
443
442
|
}
|
444
443
|
|
445
|
-
BOOST_INTRUSIVE_FORCEINLINE static void swap_next(node_ptr this_node, node_ptr other_node)
|
444
|
+
BOOST_INTRUSIVE_FORCEINLINE static void swap_next(node_ptr this_node, node_ptr other_node) BOOST_NOEXCEPT
|
446
445
|
{
|
447
446
|
node_ptr temp(NodeTraits::get_next(this_node));
|
448
447
|
NodeTraits::set_next(this_node, NodeTraits::get_next(other_node));
|