passenger 6.0.1 → 6.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +145 -18
- data/CONTRIBUTORS +6 -0
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-status +15 -0
- data/build/misc.rb +3 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +56 -3
- data/dev/copy_boost_headers +1 -0
- data/package.json +1 -1
- data/passenger.gemspec +9 -1
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
- data/resources/templates/standalone/http.erb +2 -0
- data/resources/templates/standalone/server.erb +1 -0
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
- data/src/agent/Core/ApplicationPool/Options.h +10 -0
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
- data/src/agent/Core/Config.h +14 -1
- data/src/agent/Core/Controller.h +1 -0
- data/src/agent/Core/Controller/Config.h +5 -1
- data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
- data/src/agent/Core/Controller/InitRequest.cpp +3 -0
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
- data/src/agent/Core/CoreMain.cpp +2 -1
- data/src/agent/Core/OptionParser.h +3 -0
- data/src/agent/Core/SpawningKit/Context.h +1 -0
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
- data/src/agent/Watchdog/Config.h +15 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
- data/src/apache2_module/Hooks.cpp +6 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
- data/src/cxx_supportlib/Constants.h +2 -1
- data/src/cxx_supportlib/LoggingKit/Config.h +2 -0
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +15 -9
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +20 -19
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
- data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
- data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/prespawn +1 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +26 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
- data/src/nginx_module/Configuration.c +6 -2
- data/src/nginx_module/ContentHandler.c +5 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +28 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
- data/src/nginx_module/ngx_http_passenger_module.c +2 -0
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
- data/src/ruby_native_extension/extconf.rb +7 -0
- data/src/ruby_supportlib/phusion_passenger.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +8 -0
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +23 -0
- data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -3
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +37 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
- metadata +42 -8
- data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
- data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
@@ -223,7 +223,7 @@ namespace boost {
|
|
223
223
|
template <> struct gcd_traits<unsigned char> : public gcd_traits_defaults<unsigned char>
|
224
224
|
{ BOOST_FORCEINLINE static unsigned make_odd(unsigned char& val)BOOST_NOEXCEPT{ unsigned result = gcd_traits<unsigned long>::find_lsb(val); val >>= result; return result; } };
|
225
225
|
template <> struct gcd_traits<signed char> : public gcd_traits_defaults<signed char>
|
226
|
-
{ BOOST_FORCEINLINE static
|
226
|
+
{ BOOST_FORCEINLINE static unsigned make_odd(signed char& val)BOOST_NOEXCEPT{ unsigned result = gcd_traits<unsigned long>::find_lsb(val); val >>= result; return result; } };
|
227
227
|
template <> struct gcd_traits<char> : public gcd_traits_defaults<char>
|
228
228
|
{ BOOST_FORCEINLINE static unsigned make_odd(char& val)BOOST_NOEXCEPT{ unsigned result = gcd_traits<unsigned long>::find_lsb(val); val >>= result; return result; } };
|
229
229
|
#ifndef BOOST_NO_INTRINSIC_WCHAR_T
|
@@ -310,7 +310,7 @@ namespace boost {
|
|
310
310
|
};
|
311
311
|
template <> struct gcd_traits<signed char> : public gcd_traits_defaults<signed char>
|
312
312
|
{
|
313
|
-
BOOST_FORCEINLINE static BOOST_CXX14_CONSTEXPR
|
313
|
+
BOOST_FORCEINLINE static BOOST_CXX14_CONSTEXPR unsigned make_odd(signed char& val)BOOST_NOEXCEPT { unsigned result = gcd_traits<unsigned>::find_lsb(val); val >>= result; return result; }
|
314
314
|
};
|
315
315
|
template <> struct gcd_traits<char> : public gcd_traits_defaults<char>
|
316
316
|
{
|
@@ -373,8 +373,8 @@ namespace boost {
|
|
373
373
|
if (n == SteinDomain(0))
|
374
374
|
return m;
|
375
375
|
// m > 0 && n > 0
|
376
|
-
|
377
|
-
|
376
|
+
unsigned d_m = gcd_traits<SteinDomain>::make_odd(m);
|
377
|
+
unsigned d_n = gcd_traits<SteinDomain>::make_odd(n);
|
378
378
|
// odd(m) && odd(n)
|
379
379
|
while (m != n)
|
380
380
|
{
|
@@ -42,18 +42,18 @@ struct avltree_node_cloner
|
|
42
42
|
typedef typename NodeTraits::node_ptr node_ptr;
|
43
43
|
typedef detail::ebo_functor_holder<F> base_t;
|
44
44
|
|
45
|
-
avltree_node_cloner(F f)
|
45
|
+
BOOST_INTRUSIVE_FORCEINLINE avltree_node_cloner(F f)
|
46
46
|
: base_t(f)
|
47
47
|
{}
|
48
48
|
|
49
|
-
node_ptr operator()(const node_ptr & p)
|
49
|
+
BOOST_INTRUSIVE_FORCEINLINE node_ptr operator()(const node_ptr & p)
|
50
50
|
{
|
51
51
|
node_ptr n = base_t::get()(p);
|
52
52
|
NodeTraits::set_balance(n, NodeTraits::get_balance(p));
|
53
53
|
return n;
|
54
54
|
}
|
55
55
|
|
56
|
-
node_ptr operator()(const node_ptr & p) const
|
56
|
+
BOOST_INTRUSIVE_FORCEINLINE node_ptr operator()(const node_ptr & p) const
|
57
57
|
{
|
58
58
|
node_ptr n = base_t::get()(p);
|
59
59
|
NodeTraits::set_balance(n, NodeTraits::get_balance(p));
|
@@ -176,12 +176,12 @@ class avltree_algorithms
|
|
176
176
|
static node_ptr end_node(const const_node_ptr & header);
|
177
177
|
|
178
178
|
//! @copydoc ::boost::intrusive::bstree_algorithms::swap_tree
|
179
|
-
static void swap_tree(
|
179
|
+
static void swap_tree(node_ptr header1, node_ptr header2);
|
180
180
|
|
181
181
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
182
182
|
|
183
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(
|
184
|
-
static void swap_nodes(
|
183
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(node_ptr,node_ptr)
|
184
|
+
static void swap_nodes(node_ptr node1, node_ptr node2)
|
185
185
|
{
|
186
186
|
if(node1 == node2)
|
187
187
|
return;
|
@@ -190,8 +190,8 @@ class avltree_algorithms
|
|
190
190
|
swap_nodes(node1, header1, node2, header2);
|
191
191
|
}
|
192
192
|
|
193
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(
|
194
|
-
static void swap_nodes(
|
193
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(node_ptr,node_ptr,node_ptr,node_ptr)
|
194
|
+
static void swap_nodes(node_ptr node1, node_ptr header1, node_ptr node2, node_ptr header2)
|
195
195
|
{
|
196
196
|
if(node1 == node2) return;
|
197
197
|
|
@@ -202,23 +202,23 @@ class avltree_algorithms
|
|
202
202
|
NodeTraits::set_balance(node2, c);
|
203
203
|
}
|
204
204
|
|
205
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(
|
206
|
-
static void replace_node(
|
205
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(node_ptr,node_ptr)
|
206
|
+
static void replace_node(node_ptr node_to_be_replaced, node_ptr new_node)
|
207
207
|
{
|
208
208
|
if(node_to_be_replaced == new_node)
|
209
209
|
return;
|
210
210
|
replace_node(node_to_be_replaced, bstree_algo::get_header(node_to_be_replaced), new_node);
|
211
211
|
}
|
212
212
|
|
213
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(
|
214
|
-
static void replace_node(
|
213
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(node_ptr,node_ptr,node_ptr)
|
214
|
+
static void replace_node(node_ptr node_to_be_replaced, node_ptr header, node_ptr new_node)
|
215
215
|
{
|
216
216
|
bstree_algo::replace_node(node_to_be_replaced, header, new_node);
|
217
217
|
NodeTraits::set_balance(new_node, NodeTraits::get_balance(node_to_be_replaced));
|
218
218
|
}
|
219
219
|
|
220
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::unlink(
|
221
|
-
static void unlink(
|
220
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::unlink(node_ptr)
|
221
|
+
static void unlink(node_ptr node)
|
222
222
|
{
|
223
223
|
node_ptr x = NodeTraits::get_parent(node);
|
224
224
|
if(x){
|
@@ -244,7 +244,7 @@ class avltree_algorithms
|
|
244
244
|
//! @copydoc ::boost::intrusive::bstree_algorithms::prev_node(const node_ptr&)
|
245
245
|
static node_ptr prev_node(const node_ptr & node);
|
246
246
|
|
247
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::init(
|
247
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::init(node_ptr)
|
248
248
|
static void init(const node_ptr & node);
|
249
249
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
250
250
|
|
@@ -258,14 +258,14 @@ class avltree_algorithms
|
|
258
258
|
//! <b>Throws</b>: Nothing.
|
259
259
|
//!
|
260
260
|
//! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
|
261
|
-
static void init_header(
|
261
|
+
static void init_header(node_ptr header)
|
262
262
|
{
|
263
263
|
bstree_algo::init_header(header);
|
264
264
|
NodeTraits::set_balance(header, NodeTraits::zero());
|
265
265
|
}
|
266
266
|
|
267
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::erase(
|
268
|
-
static node_ptr erase(
|
267
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::erase(node_ptr,node_ptr)
|
268
|
+
static node_ptr erase(node_ptr header, node_ptr z)
|
269
269
|
{
|
270
270
|
typename bstree_algo::data_for_rebalance info;
|
271
271
|
bstree_algo::erase(header, z, info);
|
@@ -276,7 +276,7 @@ class avltree_algorithms
|
|
276
276
|
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_unique
|
277
277
|
template<class NodePtrCompare>
|
278
278
|
static bool transfer_unique
|
279
|
-
(
|
279
|
+
(node_ptr header1, NodePtrCompare comp, node_ptr header2, node_ptr z)
|
280
280
|
{
|
281
281
|
typename bstree_algo::data_for_rebalance info;
|
282
282
|
bool const transferred = bstree_algo::transfer_unique(header1, comp, header2, z, info);
|
@@ -290,7 +290,7 @@ class avltree_algorithms
|
|
290
290
|
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_equal
|
291
291
|
template<class NodePtrCompare>
|
292
292
|
static void transfer_equal
|
293
|
-
(
|
293
|
+
(node_ptr header1, NodePtrCompare comp, node_ptr header2, node_ptr z)
|
294
294
|
{
|
295
295
|
typename bstree_algo::data_for_rebalance info;
|
296
296
|
bstree_algo::transfer_equal(header1, comp, header2, z, info);
|
@@ -298,10 +298,10 @@ class avltree_algorithms
|
|
298
298
|
rebalance_after_insertion(header1, z);
|
299
299
|
}
|
300
300
|
|
301
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::clone(const const_node_ptr&,
|
301
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::clone(const const_node_ptr&,node_ptr,Cloner,Disposer)
|
302
302
|
template <class Cloner, class Disposer>
|
303
303
|
static void clone
|
304
|
-
(const const_node_ptr & source_header,
|
304
|
+
(const const_node_ptr & source_header, node_ptr target_header, Cloner cloner, Disposer disposer)
|
305
305
|
{
|
306
306
|
avltree_node_cloner<NodeTraits, Cloner> new_cloner(cloner);
|
307
307
|
bstree_algo::clone(source_header, target_header, new_cloner, disposer);
|
@@ -344,54 +344,54 @@ class avltree_algorithms
|
|
344
344
|
|
345
345
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
346
346
|
|
347
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal_upper_bound(
|
347
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal_upper_bound(node_ptr,node_ptr,NodePtrCompare)
|
348
348
|
template<class NodePtrCompare>
|
349
349
|
static node_ptr insert_equal_upper_bound
|
350
|
-
(
|
350
|
+
(node_ptr h, node_ptr new_node, NodePtrCompare comp)
|
351
351
|
{
|
352
352
|
bstree_algo::insert_equal_upper_bound(h, new_node, comp);
|
353
353
|
rebalance_after_insertion(h, new_node);
|
354
354
|
return new_node;
|
355
355
|
}
|
356
356
|
|
357
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal_lower_bound(
|
357
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal_lower_bound(node_ptr,node_ptr,NodePtrCompare)
|
358
358
|
template<class NodePtrCompare>
|
359
359
|
static node_ptr insert_equal_lower_bound
|
360
|
-
(
|
360
|
+
(node_ptr h, node_ptr new_node, NodePtrCompare comp)
|
361
361
|
{
|
362
362
|
bstree_algo::insert_equal_lower_bound(h, new_node, comp);
|
363
363
|
rebalance_after_insertion(h, new_node);
|
364
364
|
return new_node;
|
365
365
|
}
|
366
366
|
|
367
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal(
|
367
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal(node_ptr,node_ptr,node_ptr,NodePtrCompare)
|
368
368
|
template<class NodePtrCompare>
|
369
369
|
static node_ptr insert_equal
|
370
|
-
(
|
370
|
+
(node_ptr header, node_ptr hint, node_ptr new_node, NodePtrCompare comp)
|
371
371
|
{
|
372
372
|
bstree_algo::insert_equal(header, hint, new_node, comp);
|
373
373
|
rebalance_after_insertion(header, new_node);
|
374
374
|
return new_node;
|
375
375
|
}
|
376
376
|
|
377
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_before(
|
377
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_before(node_ptr,node_ptr,node_ptr)
|
378
378
|
static node_ptr insert_before
|
379
|
-
(
|
379
|
+
(node_ptr header, node_ptr pos, node_ptr new_node)
|
380
380
|
{
|
381
381
|
bstree_algo::insert_before(header, pos, new_node);
|
382
382
|
rebalance_after_insertion(header, new_node);
|
383
383
|
return new_node;
|
384
384
|
}
|
385
385
|
|
386
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::push_back(
|
387
|
-
static void push_back(
|
386
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::push_back(node_ptr,node_ptr)
|
387
|
+
static void push_back(node_ptr header, node_ptr new_node)
|
388
388
|
{
|
389
389
|
bstree_algo::push_back(header, new_node);
|
390
390
|
rebalance_after_insertion(header, new_node);
|
391
391
|
}
|
392
392
|
|
393
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::push_front(
|
394
|
-
static void push_front(
|
393
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::push_front(node_ptr,node_ptr)
|
394
|
+
static void push_front(node_ptr header, node_ptr new_node)
|
395
395
|
{
|
396
396
|
bstree_algo::push_front(header, new_node);
|
397
397
|
rebalance_after_insertion(header, new_node);
|
@@ -411,9 +411,9 @@ class avltree_algorithms
|
|
411
411
|
,KeyNodePtrCompare comp, insert_commit_data &commit_data);
|
412
412
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
413
413
|
|
414
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_unique_commit(
|
414
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_unique_commit(node_ptr,node_ptr,const insert_commit_data &)
|
415
415
|
static void insert_unique_commit
|
416
|
-
(
|
416
|
+
(node_ptr header, node_ptr new_value, const insert_commit_data &commit_data)
|
417
417
|
{
|
418
418
|
bstree_algo::insert_unique_commit(header, new_value, commit_data);
|
419
419
|
rebalance_after_insertion(header, new_value);
|
@@ -483,7 +483,7 @@ class avltree_algorithms
|
|
483
483
|
}
|
484
484
|
|
485
485
|
static void rebalance_after_erasure
|
486
|
-
(
|
486
|
+
( node_ptr header, node_ptr z, const typename bstree_algo::data_for_rebalance &info)
|
487
487
|
{
|
488
488
|
if(info.y != z){
|
489
489
|
NodeTraits::set_balance(info.y, NodeTraits::get_balance(z));
|
@@ -492,7 +492,7 @@ class avltree_algorithms
|
|
492
492
|
rebalance_after_erasure_restore_invariants(header, info.x, info.x_parent);
|
493
493
|
}
|
494
494
|
|
495
|
-
static void rebalance_after_erasure_restore_invariants(
|
495
|
+
static void rebalance_after_erasure_restore_invariants(node_ptr header, node_ptr x, node_ptr x_parent)
|
496
496
|
{
|
497
497
|
for ( node_ptr root = NodeTraits::get_parent(header)
|
498
498
|
; x != root
|
@@ -560,7 +560,7 @@ class avltree_algorithms
|
|
560
560
|
}
|
561
561
|
}
|
562
562
|
|
563
|
-
static void rebalance_after_insertion(
|
563
|
+
static void rebalance_after_insertion(node_ptr header, node_ptr x)
|
564
564
|
{
|
565
565
|
NodeTraits::set_balance(x, NodeTraits::zero());
|
566
566
|
// Rebalance.
|
@@ -605,7 +605,7 @@ class avltree_algorithms
|
|
605
605
|
}
|
606
606
|
}
|
607
607
|
|
608
|
-
static void left_right_balancing(
|
608
|
+
static void left_right_balancing(node_ptr a, node_ptr b, node_ptr c)
|
609
609
|
{
|
610
610
|
// balancing...
|
611
611
|
const balance c_balance = NodeTraits::get_balance(c);
|
@@ -630,7 +630,7 @@ class avltree_algorithms
|
|
630
630
|
}
|
631
631
|
}
|
632
632
|
|
633
|
-
static node_ptr avl_rotate_left_right(const node_ptr a, const node_ptr a_oldleft,
|
633
|
+
static node_ptr avl_rotate_left_right(const node_ptr a, const node_ptr a_oldleft, node_ptr hdr)
|
634
634
|
{ // [note: 'a_oldleft' is 'b']
|
635
635
|
// | | //
|
636
636
|
// a(-2) c //
|
@@ -650,7 +650,7 @@ class avltree_algorithms
|
|
650
650
|
return c;
|
651
651
|
}
|
652
652
|
|
653
|
-
static node_ptr avl_rotate_right_left(const node_ptr a, const node_ptr a_oldright,
|
653
|
+
static node_ptr avl_rotate_right_left(const node_ptr a, const node_ptr a_oldright, node_ptr hdr)
|
654
654
|
{ // [note: 'a_oldright' is 'b']
|
655
655
|
// | | //
|
656
656
|
// a(pos) c //
|
@@ -670,7 +670,7 @@ class avltree_algorithms
|
|
670
670
|
return c;
|
671
671
|
}
|
672
672
|
|
673
|
-
static void avl_rotate_left(
|
673
|
+
static void avl_rotate_left(node_ptr x, node_ptr x_oldright, node_ptr hdr)
|
674
674
|
{
|
675
675
|
bstree_algo::rotate_left(x, x_oldright, NodeTraits::get_parent(x), hdr);
|
676
676
|
|
@@ -685,7 +685,7 @@ class avltree_algorithms
|
|
685
685
|
}
|
686
686
|
}
|
687
687
|
|
688
|
-
static void avl_rotate_right(
|
688
|
+
static void avl_rotate_right(node_ptr x, node_ptr x_oldleft, node_ptr hdr)
|
689
689
|
{
|
690
690
|
bstree_algo::rotate_right(x, x_oldleft, NodeTraits::get_parent(x), hdr);
|
691
691
|
|
@@ -277,7 +277,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
277
277
|
//! node1 and node2 are not equivalent according to the ordering rules.
|
278
278
|
//!
|
279
279
|
//!Experimental function
|
280
|
-
static void swap_nodes(
|
280
|
+
static void swap_nodes(node_ptr node1, node_ptr node2)
|
281
281
|
{
|
282
282
|
if(node1 == node2)
|
283
283
|
return;
|
@@ -301,7 +301,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
301
301
|
//! node1 and node2 are not equivalent according to the ordering rules.
|
302
302
|
//!
|
303
303
|
//!Experimental function
|
304
|
-
static void swap_nodes(
|
304
|
+
static void swap_nodes(node_ptr node1, node_ptr header1, node_ptr node2, node_ptr header2)
|
305
305
|
{
|
306
306
|
if(node1 == node2)
|
307
307
|
return;
|
@@ -448,7 +448,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
448
448
|
//! new_node is not equivalent to node_to_be_replaced according to the
|
449
449
|
//! ordering rules. This function is faster than erasing and inserting
|
450
450
|
//! the node, since no rebalancing and comparison is needed. Experimental function
|
451
|
-
BOOST_INTRUSIVE_FORCEINLINE static void replace_node(
|
451
|
+
BOOST_INTRUSIVE_FORCEINLINE static void replace_node(node_ptr node_to_be_replaced, node_ptr new_node)
|
452
452
|
{
|
453
453
|
if(node_to_be_replaced == new_node)
|
454
454
|
return;
|
@@ -469,7 +469,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
469
469
|
//! new_node is not equivalent to node_to_be_replaced according to the
|
470
470
|
//! ordering rules. This function is faster than erasing and inserting
|
471
471
|
//! the node, since no rebalancing or comparison is needed. Experimental function
|
472
|
-
static void replace_node(
|
472
|
+
static void replace_node(node_ptr node_to_be_replaced, node_ptr header, node_ptr new_node)
|
473
473
|
{
|
474
474
|
if(node_to_be_replaced == new_node)
|
475
475
|
return;
|
@@ -559,7 +559,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
559
559
|
//! <b>Throws</b>: Nothing.
|
560
560
|
//!
|
561
561
|
//! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
|
562
|
-
BOOST_INTRUSIVE_FORCEINLINE static void init(
|
562
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr node)
|
563
563
|
{
|
564
564
|
NodeTraits::set_parent(node, node_ptr());
|
565
565
|
NodeTraits::set_left(node, node_ptr());
|
@@ -588,7 +588,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
588
588
|
//! <b>Throws</b>: Nothing.
|
589
589
|
//!
|
590
590
|
//! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
|
591
|
-
BOOST_INTRUSIVE_FORCEINLINE static void init_header(
|
591
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init_header(node_ptr header)
|
592
592
|
{
|
593
593
|
NodeTraits::set_parent(header, node_ptr());
|
594
594
|
NodeTraits::set_left(header, header);
|
@@ -629,7 +629,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
629
629
|
//! only be used for more unlink_leftmost_without_rebalance calls.
|
630
630
|
//! This function is normally used to achieve a step by step
|
631
631
|
//! controlled destruction of the tree.
|
632
|
-
static node_ptr unlink_leftmost_without_rebalance(
|
632
|
+
static node_ptr unlink_leftmost_without_rebalance(node_ptr header)
|
633
633
|
{
|
634
634
|
node_ptr leftmost = NodeTraits::get_left(header);
|
635
635
|
if (leftmost == header)
|
@@ -684,7 +684,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
684
684
|
//! <b>Complexity</b>: Constant.
|
685
685
|
//!
|
686
686
|
//! <b>Throws</b>: Nothing.
|
687
|
-
static void swap_tree(
|
687
|
+
static void swap_tree(node_ptr header1, node_ptr header2)
|
688
688
|
{
|
689
689
|
if(header1 == header2)
|
690
690
|
return;
|
@@ -956,7 +956,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
956
956
|
//! previously executed to fill "commit_data". No value should be inserted or
|
957
957
|
//! erased between the "insert_check" and "insert_commit" calls.
|
958
958
|
BOOST_INTRUSIVE_FORCEINLINE static void insert_unique_commit
|
959
|
-
(
|
959
|
+
(node_ptr header, node_ptr new_value, const insert_commit_data &commit_data)
|
960
960
|
{ return insert_commit(header, new_value, commit_data); }
|
961
961
|
|
962
962
|
//! <b>Requires</b>: "header" must be the header node of a tree.
|
@@ -1112,7 +1112,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1112
1112
|
//! <b>Throws</b>: If "comp" throws.
|
1113
1113
|
template<class NodePtrCompare>
|
1114
1114
|
static node_ptr insert_equal
|
1115
|
-
(
|
1115
|
+
(node_ptr h, node_ptr hint, node_ptr new_node, NodePtrCompare comp
|
1116
1116
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1117
1117
|
, std::size_t *pdepth = 0
|
1118
1118
|
#endif
|
@@ -1138,7 +1138,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1138
1138
|
//! <b>Throws</b>: If "comp" throws.
|
1139
1139
|
template<class NodePtrCompare>
|
1140
1140
|
static node_ptr insert_equal_upper_bound
|
1141
|
-
(
|
1141
|
+
(node_ptr h, node_ptr new_node, NodePtrCompare comp
|
1142
1142
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1143
1143
|
, std::size_t *pdepth = 0
|
1144
1144
|
#endif
|
@@ -1164,7 +1164,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1164
1164
|
//! <b>Throws</b>: If "comp" throws.
|
1165
1165
|
template<class NodePtrCompare>
|
1166
1166
|
static node_ptr insert_equal_lower_bound
|
1167
|
-
(
|
1167
|
+
(node_ptr h, node_ptr new_node, NodePtrCompare comp
|
1168
1168
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1169
1169
|
, std::size_t *pdepth = 0
|
1170
1170
|
#endif
|
@@ -1191,7 +1191,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1191
1191
|
//! <b>Note</b>: If "pos" is not the successor of the newly inserted "new_node"
|
1192
1192
|
//! tree invariants might be broken.
|
1193
1193
|
static node_ptr insert_before
|
1194
|
-
(
|
1194
|
+
(node_ptr header, node_ptr pos, node_ptr new_node
|
1195
1195
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1196
1196
|
, std::size_t *pdepth = 0
|
1197
1197
|
#endif
|
@@ -1217,7 +1217,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1217
1217
|
//! tree invariants are broken. This function is slightly faster than
|
1218
1218
|
//! using "insert_before".
|
1219
1219
|
static void push_back
|
1220
|
-
(
|
1220
|
+
(node_ptr header, node_ptr new_node
|
1221
1221
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1222
1222
|
, std::size_t *pdepth = 0
|
1223
1223
|
#endif
|
@@ -1242,7 +1242,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1242
1242
|
//! tree invariants are broken. This function is slightly faster than
|
1243
1243
|
//! using "insert_before".
|
1244
1244
|
static void push_front
|
1245
|
-
(
|
1245
|
+
(node_ptr header, node_ptr new_node
|
1246
1246
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1247
1247
|
, std::size_t *pdepth = 0
|
1248
1248
|
#endif
|
@@ -1292,7 +1292,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1292
1292
|
//! <b>Throws</b>: If cloner functor throws. If this happens target nodes are disposed.
|
1293
1293
|
template <class Cloner, class Disposer>
|
1294
1294
|
static void clone
|
1295
|
-
(const const_node_ptr & source_header,
|
1295
|
+
(const const_node_ptr & source_header, node_ptr target_header, Cloner cloner, Disposer disposer)
|
1296
1296
|
{
|
1297
1297
|
if(!unique(target_header)){
|
1298
1298
|
clear_and_dispose(target_header, disposer);
|
@@ -1316,7 +1316,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1316
1316
|
//! <b>Complexity</b>: Amortized constant time.
|
1317
1317
|
//!
|
1318
1318
|
//! <b>Throws</b>: Nothing.
|
1319
|
-
BOOST_INTRUSIVE_FORCEINLINE static void erase(
|
1319
|
+
BOOST_INTRUSIVE_FORCEINLINE static void erase(node_ptr header, node_ptr z)
|
1320
1320
|
{
|
1321
1321
|
data_for_rebalance ignored;
|
1322
1322
|
erase(header, z, ignored);
|
@@ -1336,7 +1336,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1336
1336
|
//! <b>Throws</b>: If the comparison throws.
|
1337
1337
|
template<class NodePtrCompare>
|
1338
1338
|
BOOST_INTRUSIVE_FORCEINLINE static bool transfer_unique
|
1339
|
-
(
|
1339
|
+
(node_ptr header1, NodePtrCompare comp, node_ptr header2, node_ptr z)
|
1340
1340
|
{
|
1341
1341
|
data_for_rebalance ignored;
|
1342
1342
|
return transfer_unique(header1, comp, header2, z, ignored);
|
@@ -1353,7 +1353,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1353
1353
|
//! <b>Throws</b>: If the comparison throws.
|
1354
1354
|
template<class NodePtrCompare>
|
1355
1355
|
BOOST_INTRUSIVE_FORCEINLINE static void transfer_equal
|
1356
|
-
(
|
1356
|
+
(node_ptr header1, NodePtrCompare comp, node_ptr header2, node_ptr z)
|
1357
1357
|
{
|
1358
1358
|
data_for_rebalance ignored;
|
1359
1359
|
transfer_equal(header1, comp, header2, z, ignored);
|
@@ -1366,7 +1366,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1366
1366
|
//! <b>Complexity</b>: Average complexity is constant time.
|
1367
1367
|
//!
|
1368
1368
|
//! <b>Throws</b>: Nothing.
|
1369
|
-
static void unlink(
|
1369
|
+
static void unlink(node_ptr node)
|
1370
1370
|
{
|
1371
1371
|
node_ptr x = NodeTraits::get_parent(node);
|
1372
1372
|
if(x){
|
@@ -1383,7 +1383,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1383
1383
|
//! <b>Throws</b>: Nothing.
|
1384
1384
|
//!
|
1385
1385
|
//! <b>Complexity</b>: Linear.
|
1386
|
-
static void rebalance(
|
1386
|
+
static void rebalance(node_ptr header)
|
1387
1387
|
{
|
1388
1388
|
node_ptr root = NodeTraits::get_parent(header);
|
1389
1389
|
if(root){
|
@@ -1400,7 +1400,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1400
1400
|
//! <b>Throws</b>: Nothing.
|
1401
1401
|
//!
|
1402
1402
|
//! <b>Complexity</b>: Linear.
|
1403
|
-
static node_ptr rebalance_subtree(
|
1403
|
+
static node_ptr rebalance_subtree(node_ptr old_root)
|
1404
1404
|
{
|
1405
1405
|
//Taken from:
|
1406
1406
|
//"Tree rebalancing in optimal time and space"
|
@@ -1476,7 +1476,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1476
1476
|
|
1477
1477
|
template<class NodePtrCompare>
|
1478
1478
|
static bool transfer_unique
|
1479
|
-
(
|
1479
|
+
(node_ptr header1, NodePtrCompare comp, node_ptr header2, node_ptr z, data_for_rebalance &info)
|
1480
1480
|
{
|
1481
1481
|
insert_commit_data commit_data;
|
1482
1482
|
bool const transferable = insert_unique_check(header1, z, comp, commit_data).second;
|
@@ -1489,7 +1489,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1489
1489
|
|
1490
1490
|
template<class NodePtrCompare>
|
1491
1491
|
static void transfer_equal
|
1492
|
-
(
|
1492
|
+
(node_ptr header1, NodePtrCompare comp, node_ptr header2, node_ptr z, data_for_rebalance &info)
|
1493
1493
|
{
|
1494
1494
|
insert_commit_data commit_data;
|
1495
1495
|
insert_equal_upper_bound_check(header1, z, comp, commit_data);
|
@@ -1497,7 +1497,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1497
1497
|
insert_commit(header1, z, commit_data);
|
1498
1498
|
}
|
1499
1499
|
|
1500
|
-
static void erase(
|
1500
|
+
static void erase(node_ptr header, node_ptr z, data_for_rebalance &info)
|
1501
1501
|
{
|
1502
1502
|
node_ptr y(z);
|
1503
1503
|
node_ptr x;
|
@@ -1643,7 +1643,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1643
1643
|
{ return NodeTraits::get_right(NodeTraits::get_parent(p)) == p; }
|
1644
1644
|
|
1645
1645
|
static void insert_before_check
|
1646
|
-
(
|
1646
|
+
(node_ptr header, node_ptr pos
|
1647
1647
|
, insert_commit_data &commit_data
|
1648
1648
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1649
1649
|
, std::size_t *pdepth = 0
|
@@ -1662,7 +1662,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1662
1662
|
}
|
1663
1663
|
|
1664
1664
|
static void push_back_check
|
1665
|
-
(
|
1665
|
+
(node_ptr header, insert_commit_data &commit_data
|
1666
1666
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1667
1667
|
, std::size_t *pdepth = 0
|
1668
1668
|
#endif
|
@@ -1677,7 +1677,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1677
1677
|
}
|
1678
1678
|
|
1679
1679
|
static void push_front_check
|
1680
|
-
(
|
1680
|
+
(node_ptr header, insert_commit_data &commit_data
|
1681
1681
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1682
1682
|
, std::size_t *pdepth = 0
|
1683
1683
|
#endif
|
@@ -1693,7 +1693,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1693
1693
|
|
1694
1694
|
template<class NodePtrCompare>
|
1695
1695
|
static void insert_equal_check
|
1696
|
-
(
|
1696
|
+
(node_ptr header, node_ptr hint, node_ptr new_node, NodePtrCompare comp
|
1697
1697
|
, insert_commit_data &commit_data
|
1698
1698
|
/// @cond
|
1699
1699
|
, std::size_t *pdepth = 0
|
@@ -1722,7 +1722,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1722
1722
|
|
1723
1723
|
template<class NodePtrCompare>
|
1724
1724
|
static void insert_equal_upper_bound_check
|
1725
|
-
(
|
1725
|
+
(node_ptr h, node_ptr new_node, NodePtrCompare comp, insert_commit_data & commit_data, std::size_t *pdepth = 0)
|
1726
1726
|
{
|
1727
1727
|
std::size_t depth = 0;
|
1728
1728
|
node_ptr y(h);
|
@@ -1741,7 +1741,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1741
1741
|
|
1742
1742
|
template<class NodePtrCompare>
|
1743
1743
|
static void insert_equal_lower_bound_check
|
1744
|
-
(
|
1744
|
+
(node_ptr h, node_ptr new_node, NodePtrCompare comp, insert_commit_data & commit_data, std::size_t *pdepth = 0)
|
1745
1745
|
{
|
1746
1746
|
std::size_t depth = 0;
|
1747
1747
|
node_ptr y(h);
|
@@ -1759,7 +1759,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1759
1759
|
}
|
1760
1760
|
|
1761
1761
|
static void insert_commit
|
1762
|
-
(
|
1762
|
+
(node_ptr header, node_ptr new_node, const insert_commit_data &commit_data)
|
1763
1763
|
{
|
1764
1764
|
//Check if commit_data has not been initialized by a insert_unique_check call.
|
1765
1765
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(commit_data.node != node_ptr());
|
@@ -1785,7 +1785,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1785
1785
|
}
|
1786
1786
|
|
1787
1787
|
//Fix header and own's parent data when replacing x with own, providing own's old data with parent
|
1788
|
-
static void set_child(
|
1788
|
+
static void set_child(node_ptr header, node_ptr new_child, node_ptr new_parent, const bool link_left)
|
1789
1789
|
{
|
1790
1790
|
if(new_parent == header)
|
1791
1791
|
NodeTraits::set_parent(header, new_child);
|
@@ -1796,7 +1796,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1796
1796
|
}
|
1797
1797
|
|
1798
1798
|
// rotate p to left (no header and p's parent fixup)
|
1799
|
-
static void rotate_left_no_parent_fix(
|
1799
|
+
static void rotate_left_no_parent_fix(node_ptr p, node_ptr p_right)
|
1800
1800
|
{
|
1801
1801
|
node_ptr p_right_left(NodeTraits::get_left(p_right));
|
1802
1802
|
NodeTraits::set_right(p, p_right_left);
|
@@ -1808,7 +1808,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1808
1808
|
}
|
1809
1809
|
|
1810
1810
|
// rotate p to left (with header and p's parent fixup)
|
1811
|
-
static void rotate_left(
|
1811
|
+
static void rotate_left(node_ptr p, node_ptr p_right, node_ptr p_parent, node_ptr header)
|
1812
1812
|
{
|
1813
1813
|
const bool p_was_left(NodeTraits::get_left(p_parent) == p);
|
1814
1814
|
rotate_left_no_parent_fix(p, p_right);
|
@@ -1817,7 +1817,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1817
1817
|
}
|
1818
1818
|
|
1819
1819
|
// rotate p to right (no header and p's parent fixup)
|
1820
|
-
static void rotate_right_no_parent_fix(
|
1820
|
+
static void rotate_right_no_parent_fix(node_ptr p, node_ptr p_left)
|
1821
1821
|
{
|
1822
1822
|
node_ptr p_left_right(NodeTraits::get_right(p_left));
|
1823
1823
|
NodeTraits::set_left(p, p_left_right);
|
@@ -1829,7 +1829,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1829
1829
|
}
|
1830
1830
|
|
1831
1831
|
// rotate p to right (with header and p's parent fixup)
|
1832
|
-
static void rotate_right(
|
1832
|
+
static void rotate_right(node_ptr p, node_ptr p_left, node_ptr p_parent, node_ptr header)
|
1833
1833
|
{
|
1834
1834
|
const bool p_was_left(NodeTraits::get_left(p_parent) == p);
|
1835
1835
|
rotate_right_no_parent_fix(p, p_left);
|
@@ -1883,7 +1883,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1883
1883
|
}
|
1884
1884
|
}
|
1885
1885
|
|
1886
|
-
static void vine_to_subtree(
|
1886
|
+
static void vine_to_subtree(node_ptr super_root, std::size_t count)
|
1887
1887
|
{
|
1888
1888
|
const std::size_t one_szt = 1u;
|
1889
1889
|
std::size_t leaf_nodes = count + one_szt - std::size_t(one_szt << detail::floor_log2(count + one_szt));
|
@@ -1927,7 +1927,7 @@ class bstree_algorithms : public bstree_algorithms_base
|
|
1927
1927
|
|
1928
1928
|
template <class Cloner, class Disposer>
|
1929
1929
|
static node_ptr clone_subtree
|
1930
|
-
(const const_node_ptr &source_parent,
|
1930
|
+
(const const_node_ptr &source_parent, node_ptr target_parent
|
1931
1931
|
, Cloner cloner, Disposer disposer
|
1932
1932
|
, node_ptr &leftmost_out, node_ptr &rightmost_out
|
1933
1933
|
)
|