passenger 6.2.1 → 6.2.2
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 +37 -15
- data/build/cxx_tests.rb +2 -0
- data/build/support/cxx_dependency_map.rb +3 -63
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Shared/ApiServerUtils.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/apache2_module/Hooks.cpp +13 -0
- data/src/apache2_module/Utils.h +14 -0
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/FileTools/FileManip.cpp +27 -3
- data/src/cxx_supportlib/InstanceDirectory.h +30 -3
- data/src/cxx_supportlib/ServerKit/Errors.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpRequest.h +1 -1
- data/src/cxx_supportlib/ServerKit/llerrors.h +3 -3
- data/src/cxx_supportlib/ServerKit/llversion.h +1 -1
- data/src/cxx_supportlib/{ServerKit/llhttp_api.c → vendor-copy/llhttp/api.c} +30 -23
- data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.c +1756 -1645
- data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.h +35 -13
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/classification.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim_all.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +20 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/debug.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +57 -53
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +14 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +176 -2287
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +13 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +186 -70
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/aligned_allocation.hpp +149 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/bit_utilities.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +18 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +20 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/deque_impl.hpp +2744 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +202 -104
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dlmalloc.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +161 -85
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_constructible.hpp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +18 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +256 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +75 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +1 -56
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +16 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +1 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/range_utils.hpp +196 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +33 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +124 -69
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +109 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +168 -162
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/nest.hpp +2978 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/pmr/nest.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_all_of.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_any_of.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy.hpp +229 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_if.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_n.hpp +308 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count_if.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_equal.hpp +268 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill_n.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if_not.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if_not.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_for_each.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate_n.hpp +162 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_partitioned.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted_until.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_iterator_traits.hpp +382 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_merge.hpp +428 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_mismatch.hpp +350 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_none_of.hpp +98 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition.hpp +296 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_copy.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_point.hpp +116 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy.hpp +207 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy_if.hpp +223 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_if.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace_if.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse.hpp +245 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse_copy.hpp +229 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search.hpp +211 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search_n.hpp +476 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_difference.hpp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_intersection.hpp +287 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_symmetric_difference.hpp +306 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_union.hpp +294 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_stable_partition.hpp +153 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_swap_ranges.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_transform.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/wrapped_iterator.hpp +142 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +642 -417
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +141 -30
- data/src/cxx_supportlib/vendor-modified/boost/container/hub.hpp +2426 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +65 -57
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +247 -68
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +39 -33
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +156 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/hub.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/segtor.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/segtor.hpp +905 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +148 -35
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +59 -52
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +632 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +66 -60
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +46 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +612 -317
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +54 -111
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_construction.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +233 -116
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +17 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/encoder.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +211 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +29 -174
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +18 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +20 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +42 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +58 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +8 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/config.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +15 -7
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +23 -11
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/{detail → lexical_cast/detail}/lcast_precision.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +15 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +48 -46
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/traits.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +58 -37
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +17 -9
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_common_defs.hpp +188 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_nonmember_interface.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +108 -83
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_select_implementation.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/union_optional.hpp +724 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +93 -220
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/system/api_config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +30 -28
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +26 -26
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +196 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +191 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +196 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +192 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +52 -16
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/ranges_support.hpp +104 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +1 -14
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unordered_printers.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +121 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +118 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +338 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +121 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +118 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +333 -1
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +276 -143
- data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +1262 -771
- data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +1704 -1586
- data/src/nginx_module/ContentHandler.c +35 -0
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +6 -6
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +25 -2
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +12 -1
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- metadata +73 -8
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +0 -41
- /data/src/cxx_supportlib/{ServerKit/llhttp_http.c → vendor-copy/llhttp/http.c} +0 -0
|
@@ -29,137 +29,9 @@ namespace boost {
|
|
|
29
29
|
namespace intrusive {
|
|
30
30
|
namespace detail {
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
#define BOOST_INTRUSIVE_TT_DECL __cdecl
|
|
34
|
-
#else
|
|
35
|
-
#define BOOST_INTRUSIVE_TT_DECL
|
|
36
|
-
#endif
|
|
37
|
-
|
|
38
|
-
#if defined(_MSC_EXTENSIONS) && !defined(__BORLAND__) && !defined(_WIN64) && !defined(_M_ARM) && !defined(_M_ARM64) && !defined(UNDER_CE)
|
|
39
|
-
#define BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
|
|
40
|
-
#endif
|
|
41
|
-
|
|
42
|
-
template <typename T>
|
|
43
|
-
struct is_unary_or_binary_function_impl
|
|
44
|
-
{ static const bool value = false; };
|
|
45
|
-
|
|
46
|
-
// see boost ticket #4094
|
|
47
|
-
// avoid duplicate definitions of is_unary_or_binary_function_impl
|
|
48
|
-
#ifndef BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
|
|
49
|
-
|
|
50
|
-
template <typename R>
|
|
51
|
-
struct is_unary_or_binary_function_impl<R (*)()>
|
|
52
|
-
{ static const bool value = true; };
|
|
53
|
-
|
|
54
|
-
template <typename R>
|
|
55
|
-
struct is_unary_or_binary_function_impl<R (*)(...)>
|
|
56
|
-
{ static const bool value = true; };
|
|
57
|
-
|
|
58
|
-
#else // BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
|
|
59
|
-
|
|
60
|
-
template <typename R>
|
|
61
|
-
struct is_unary_or_binary_function_impl<R (__stdcall*)()>
|
|
62
|
-
{ static const bool value = true; };
|
|
63
|
-
|
|
64
|
-
#ifndef _MANAGED
|
|
65
|
-
|
|
66
|
-
template <typename R>
|
|
67
|
-
struct is_unary_or_binary_function_impl<R (__fastcall*)()>
|
|
68
|
-
{ static const bool value = true; };
|
|
69
|
-
|
|
70
|
-
#endif
|
|
71
|
-
|
|
72
|
-
template <typename R>
|
|
73
|
-
struct is_unary_or_binary_function_impl<R (__cdecl*)()>
|
|
74
|
-
{ static const bool value = true; };
|
|
75
|
-
|
|
76
|
-
template <typename R>
|
|
77
|
-
struct is_unary_or_binary_function_impl<R (__cdecl*)(...)>
|
|
78
|
-
{ static const bool value = true; };
|
|
79
|
-
|
|
80
|
-
#endif
|
|
81
|
-
|
|
82
|
-
// see boost ticket #4094
|
|
83
|
-
// avoid duplicate definitions of is_unary_or_binary_function_impl
|
|
84
|
-
#ifndef BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
|
|
85
|
-
|
|
86
|
-
template <typename R, class T0>
|
|
87
|
-
struct is_unary_or_binary_function_impl<R (*)(T0)>
|
|
88
|
-
{ static const bool value = true; };
|
|
89
|
-
|
|
90
|
-
template <typename R, class T0>
|
|
91
|
-
struct is_unary_or_binary_function_impl<R (*)(T0, ...)>
|
|
92
|
-
{ static const bool value = true; };
|
|
93
|
-
|
|
94
|
-
#else // BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
|
|
95
|
-
|
|
96
|
-
template <typename R, class T0>
|
|
97
|
-
struct is_unary_or_binary_function_impl<R (__stdcall*)(T0)>
|
|
98
|
-
{ static const bool value = true; };
|
|
99
|
-
|
|
100
|
-
#ifndef _MANAGED
|
|
101
|
-
|
|
102
|
-
template <typename R, class T0>
|
|
103
|
-
struct is_unary_or_binary_function_impl<R (__fastcall*)(T0)>
|
|
104
|
-
{ static const bool value = true; };
|
|
105
|
-
|
|
106
|
-
#endif
|
|
107
|
-
|
|
108
|
-
template <typename R, class T0>
|
|
109
|
-
struct is_unary_or_binary_function_impl<R (__cdecl*)(T0)>
|
|
110
|
-
{ static const bool value = true; };
|
|
111
|
-
|
|
112
|
-
template <typename R, class T0>
|
|
113
|
-
struct is_unary_or_binary_function_impl<R (__cdecl*)(T0, ...)>
|
|
114
|
-
{ static const bool value = true; };
|
|
115
|
-
|
|
116
|
-
#endif
|
|
117
|
-
|
|
118
|
-
// see boost ticket #4094
|
|
119
|
-
// avoid duplicate definitions of is_unary_or_binary_function_impl
|
|
120
|
-
#ifndef BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
|
|
121
|
-
|
|
122
|
-
template <typename R, class T0, class T1>
|
|
123
|
-
struct is_unary_or_binary_function_impl<R (*)(T0, T1)>
|
|
124
|
-
{ static const bool value = true; };
|
|
125
|
-
|
|
126
|
-
template <typename R, class T0, class T1>
|
|
127
|
-
struct is_unary_or_binary_function_impl<R (*)(T0, T1, ...)>
|
|
128
|
-
{ static const bool value = true; };
|
|
129
|
-
|
|
130
|
-
#else // BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
|
|
131
|
-
|
|
132
|
-
template <typename R, class T0, class T1>
|
|
133
|
-
struct is_unary_or_binary_function_impl<R (__stdcall*)(T0, T1)>
|
|
134
|
-
{ static const bool value = true; };
|
|
135
|
-
|
|
136
|
-
#ifndef _MANAGED
|
|
137
|
-
|
|
138
|
-
template <typename R, class T0, class T1>
|
|
139
|
-
struct is_unary_or_binary_function_impl<R (__fastcall*)(T0, T1)>
|
|
140
|
-
{ static const bool value = true; };
|
|
141
|
-
|
|
142
|
-
#endif
|
|
143
|
-
|
|
144
|
-
template <typename R, class T0, class T1>
|
|
145
|
-
struct is_unary_or_binary_function_impl<R (__cdecl*)(T0, T1)>
|
|
146
|
-
{ static const bool value = true; };
|
|
147
|
-
|
|
148
|
-
template <typename R, class T0, class T1>
|
|
149
|
-
struct is_unary_or_binary_function_impl<R (__cdecl*)(T0, T1, ...)>
|
|
150
|
-
{ static const bool value = true; };
|
|
151
|
-
#endif
|
|
152
|
-
|
|
153
|
-
template <typename T>
|
|
154
|
-
struct is_unary_or_binary_function_impl<T&>
|
|
155
|
-
{ static const bool value = false; };
|
|
156
|
-
|
|
157
|
-
template<typename T>
|
|
158
|
-
struct is_unary_or_binary_function : is_unary_or_binary_function_impl<T>
|
|
159
|
-
{};
|
|
160
|
-
|
|
161
|
-
template<typename T, typename Tag = void, bool = is_unary_or_binary_function<T>::value>
|
|
32
|
+
template<typename T, typename Tag = void>
|
|
162
33
|
class ebo_functor_holder
|
|
34
|
+
: public T
|
|
163
35
|
{
|
|
164
36
|
BOOST_COPYABLE_AND_MOVABLE(ebo_functor_holder)
|
|
165
37
|
|
|
@@ -167,33 +39,34 @@ class ebo_functor_holder
|
|
|
167
39
|
typedef T functor_type;
|
|
168
40
|
|
|
169
41
|
inline ebo_functor_holder()
|
|
170
|
-
:
|
|
42
|
+
: T()
|
|
171
43
|
{}
|
|
172
44
|
|
|
173
45
|
inline explicit ebo_functor_holder(const T &t)
|
|
174
|
-
:
|
|
46
|
+
: T(t)
|
|
175
47
|
{}
|
|
176
48
|
|
|
177
49
|
inline explicit ebo_functor_holder(BOOST_RV_REF(T) t)
|
|
178
|
-
:
|
|
50
|
+
: T(::boost::move(t))
|
|
179
51
|
{}
|
|
180
52
|
|
|
181
53
|
template<class Arg1, class Arg2>
|
|
182
54
|
inline ebo_functor_holder(BOOST_FWD_REF(Arg1) arg1, BOOST_FWD_REF(Arg2) arg2)
|
|
183
|
-
:
|
|
55
|
+
: T(::boost::forward<Arg1>(arg1), ::boost::forward<Arg2>(arg2))
|
|
184
56
|
{}
|
|
185
57
|
|
|
186
58
|
inline ebo_functor_holder(const ebo_functor_holder &x)
|
|
187
|
-
:
|
|
59
|
+
: T(static_cast<const T&>(x))
|
|
188
60
|
{}
|
|
189
61
|
|
|
190
62
|
inline ebo_functor_holder(BOOST_RV_REF(ebo_functor_holder) x)
|
|
191
|
-
:
|
|
63
|
+
: T(BOOST_MOVE_BASE(T, x))
|
|
192
64
|
{}
|
|
193
65
|
|
|
194
66
|
inline ebo_functor_holder& operator=(BOOST_COPY_ASSIGN_REF(ebo_functor_holder) x)
|
|
195
67
|
{
|
|
196
|
-
|
|
68
|
+
const ebo_functor_holder&r = x;
|
|
69
|
+
this->get() = r;
|
|
197
70
|
return *this;
|
|
198
71
|
}
|
|
199
72
|
|
|
@@ -203,28 +76,24 @@ class ebo_functor_holder
|
|
|
203
76
|
return *this;
|
|
204
77
|
}
|
|
205
78
|
|
|
206
|
-
inline ebo_functor_holder& operator=(const T &
|
|
79
|
+
inline ebo_functor_holder& operator=(const T &t)
|
|
207
80
|
{
|
|
208
|
-
this->get() =
|
|
81
|
+
this->get() = t;
|
|
209
82
|
return *this;
|
|
210
83
|
}
|
|
211
84
|
|
|
212
|
-
inline ebo_functor_holder& operator=(BOOST_RV_REF(T)
|
|
85
|
+
inline ebo_functor_holder& operator=(BOOST_RV_REF(T) t)
|
|
213
86
|
{
|
|
214
|
-
this->get() = ::boost::move(
|
|
87
|
+
this->get() = ::boost::move(t);
|
|
215
88
|
return *this;
|
|
216
89
|
}
|
|
217
90
|
|
|
218
|
-
inline T& get(){return
|
|
219
|
-
inline const T& get()const{return
|
|
220
|
-
|
|
221
|
-
private:
|
|
222
|
-
T t_;
|
|
91
|
+
inline T& get(){return *this;}
|
|
92
|
+
inline const T& get()const{return *this;}
|
|
223
93
|
};
|
|
224
94
|
|
|
225
95
|
template<typename T, typename Tag>
|
|
226
|
-
class ebo_functor_holder<T
|
|
227
|
-
: public T
|
|
96
|
+
class ebo_functor_holder<T *, Tag>
|
|
228
97
|
{
|
|
229
98
|
BOOST_COPYABLE_AND_MOVABLE(ebo_functor_holder)
|
|
230
99
|
|
|
@@ -232,57 +101,43 @@ class ebo_functor_holder<T, Tag, false>
|
|
|
232
101
|
typedef T functor_type;
|
|
233
102
|
|
|
234
103
|
inline ebo_functor_holder()
|
|
235
|
-
:
|
|
236
|
-
{}
|
|
237
|
-
|
|
238
|
-
inline explicit ebo_functor_holder(const T &t)
|
|
239
|
-
: T(t)
|
|
240
|
-
{}
|
|
241
|
-
|
|
242
|
-
inline explicit ebo_functor_holder(BOOST_RV_REF(T) t)
|
|
243
|
-
: T(::boost::move(t))
|
|
104
|
+
: t_()
|
|
244
105
|
{}
|
|
245
106
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
: T(::boost::forward<Arg1>(arg1), ::boost::forward<Arg2>(arg2))
|
|
107
|
+
inline explicit ebo_functor_holder(T * t)
|
|
108
|
+
: t_(t)
|
|
249
109
|
{}
|
|
250
110
|
|
|
251
111
|
inline ebo_functor_holder(const ebo_functor_holder &x)
|
|
252
|
-
:
|
|
112
|
+
: t_(x.t_)
|
|
253
113
|
{}
|
|
254
114
|
|
|
255
115
|
inline ebo_functor_holder(BOOST_RV_REF(ebo_functor_holder) x)
|
|
256
|
-
:
|
|
116
|
+
: t_(x.t_)
|
|
257
117
|
{}
|
|
258
118
|
|
|
259
119
|
inline ebo_functor_holder& operator=(BOOST_COPY_ASSIGN_REF(ebo_functor_holder) x)
|
|
260
120
|
{
|
|
261
|
-
|
|
262
|
-
this->get() = r;
|
|
121
|
+
this->t_ = x.t_;
|
|
263
122
|
return *this;
|
|
264
123
|
}
|
|
265
124
|
|
|
266
125
|
inline ebo_functor_holder& operator=(BOOST_RV_REF(ebo_functor_holder) x)
|
|
267
126
|
{
|
|
268
|
-
this->
|
|
127
|
+
this->t_ = ::boost::move(x.t_);
|
|
269
128
|
return *this;
|
|
270
129
|
}
|
|
271
130
|
|
|
272
|
-
inline ebo_functor_holder& operator=(
|
|
131
|
+
inline ebo_functor_holder& operator=(T * t)
|
|
273
132
|
{
|
|
274
|
-
this->
|
|
133
|
+
this->t_ = t;
|
|
275
134
|
return *this;
|
|
276
135
|
}
|
|
277
136
|
|
|
278
|
-
inline
|
|
279
|
-
{
|
|
280
|
-
this->get() = ::boost::move(x);
|
|
281
|
-
return *this;
|
|
282
|
-
}
|
|
137
|
+
inline T& get(){return *t_;}
|
|
283
138
|
|
|
284
|
-
|
|
285
|
-
|
|
139
|
+
private:
|
|
140
|
+
T * t_;
|
|
286
141
|
};
|
|
287
142
|
|
|
288
143
|
} //namespace detail {
|
|
@@ -170,15 +170,23 @@ class generic_hook
|
|
|
170
170
|
/// @endcond
|
|
171
171
|
|
|
172
172
|
inline generic_hook() BOOST_NOEXCEPT
|
|
173
|
+
#if defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
|
|
174
|
+
requires (LinkMode != normal_link)
|
|
175
|
+
#endif
|
|
173
176
|
{
|
|
174
|
-
|
|
177
|
+
BOOST_IF_CONSTEXPR(hooktags::safemode_or_autounlink){
|
|
175
178
|
node_algorithms::init(this->this_ptr());
|
|
176
179
|
}
|
|
177
180
|
}
|
|
178
181
|
|
|
182
|
+
#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
|
|
183
|
+
//Default destructor for normal links (allows conditional triviality)
|
|
184
|
+
generic_hook() requires (LinkMode == normal_link) = default;
|
|
185
|
+
#endif
|
|
186
|
+
|
|
179
187
|
inline generic_hook(const generic_hook& ) BOOST_NOEXCEPT
|
|
180
188
|
{
|
|
181
|
-
|
|
189
|
+
BOOST_IF_CONSTEXPR(hooktags::safemode_or_autounlink){
|
|
182
190
|
node_algorithms::init(this->this_ptr());
|
|
183
191
|
}
|
|
184
192
|
}
|
|
@@ -187,11 +195,19 @@ class generic_hook
|
|
|
187
195
|
{ return *this; }
|
|
188
196
|
|
|
189
197
|
inline ~generic_hook()
|
|
198
|
+
#if defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
|
|
199
|
+
requires (LinkMode != normal_link)
|
|
200
|
+
#endif
|
|
190
201
|
{
|
|
191
202
|
destructor_impl
|
|
192
203
|
(*this, detail::link_dispatch<hooktags::link_mode>());
|
|
193
204
|
}
|
|
194
205
|
|
|
206
|
+
#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
|
|
207
|
+
//Default destructor for normal links (allows conditional triviality)
|
|
208
|
+
~generic_hook() requires (LinkMode == normal_link) = default;
|
|
209
|
+
#endif
|
|
210
|
+
|
|
195
211
|
inline void swap_nodes(generic_hook &other) BOOST_NOEXCEPT
|
|
196
212
|
{
|
|
197
213
|
node_algorithms::swap_nodes
|
|
@@ -48,11 +48,7 @@
|
|
|
48
48
|
#elif defined(BOOST_MSVC) && (_MSC_VER < 1900 || defined(_DEBUG))
|
|
49
49
|
//"__forceinline" and MSVC seems to have some bugs in old versions and in debug mode
|
|
50
50
|
#define BOOST_INTRUSIVE_FORCEINLINE inline
|
|
51
|
-
#elif defined(
|
|
52
|
-
//Older GCCs have problems with forceinline
|
|
53
|
-
//Clang can have code bloat issues with forceinline, see
|
|
54
|
-
//https://lists.boost.org/boost-users/2023/04/91445.php and
|
|
55
|
-
//https://github.com/llvm/llvm-project/issues/62202
|
|
51
|
+
#elif defined(BOOST_GCC) && (__GNUC__ <= 5)
|
|
56
52
|
#define BOOST_INTRUSIVE_FORCEINLINE inline
|
|
57
53
|
#else
|
|
58
54
|
#define BOOST_INTRUSIVE_FORCEINLINE BOOST_FORCEINLINE
|
|
@@ -121,5 +117,8 @@ template<unsigned> struct static_assert_test {};
|
|
|
121
117
|
# define BOOST_INTRUSIVE_NO_DANGLING
|
|
122
118
|
#endif
|
|
123
119
|
|
|
120
|
+
#if defined(__cpp_concepts) && (__cpp_concepts >= 202002L)
|
|
121
|
+
# define BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING
|
|
122
|
+
#endif
|
|
124
123
|
|
|
125
124
|
#endif //#ifndef BOOST_INTRUSIVE_DETAIL_WORKAROUND_HPP
|
|
@@ -1909,7 +1909,19 @@ struct hashdata_internal
|
|
|
1909
1909
|
{ return this->priv_size_traits(); }
|
|
1910
1910
|
|
|
1911
1911
|
~hashdata_internal()
|
|
1912
|
-
|
|
1912
|
+
#if defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
|
|
1913
|
+
requires (ValueTraits::link_mode != normal_link)
|
|
1914
|
+
#endif
|
|
1915
|
+
{
|
|
1916
|
+
BOOST_IF_CONSTEXPR(safemode_or_autounlink){
|
|
1917
|
+
this->priv_clear_buckets();
|
|
1918
|
+
}
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
|
|
1922
|
+
//Default destructor for normal links (allows conditional triviality)
|
|
1923
|
+
~hashdata_internal() requires (ValueTraits::link_mode == normal_link) = default;
|
|
1924
|
+
#endif
|
|
1913
1925
|
|
|
1914
1926
|
using split_bucket_hash_equal_t::priv_clear_buckets;
|
|
1915
1927
|
|
|
@@ -1976,11 +1988,8 @@ struct hashdata_internal
|
|
|
1976
1988
|
else {
|
|
1977
1989
|
BOOST_IF_CONSTEXPR(incremental) {
|
|
1978
1990
|
BOOST_ASSERT(0 == (std::size_t(bc) & (std::size_t(bc) - 1u)));
|
|
1979
|
-
return bc;
|
|
1980
|
-
}
|
|
1981
|
-
else{
|
|
1982
|
-
return bc;
|
|
1983
1991
|
}
|
|
1992
|
+
return bc;
|
|
1984
1993
|
}
|
|
1985
1994
|
}
|
|
1986
1995
|
|
|
@@ -2462,6 +2471,7 @@ class hashtable_impl
|
|
|
2462
2471
|
hashtable_impl& operator=(BOOST_RV_REF(hashtable_impl) x)
|
|
2463
2472
|
{ this->swap(x); return *this; }
|
|
2464
2473
|
|
|
2474
|
+
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
|
2465
2475
|
//! <b>Effects</b>: Detaches all elements from this. The objects in the unordered_set
|
|
2466
2476
|
//! are not deleted (i.e. no destructors are called).
|
|
2467
2477
|
//!
|
|
@@ -2469,10 +2479,8 @@ class hashtable_impl
|
|
|
2469
2479
|
//! it's a safe-mode or auto-unlink value. Otherwise constant.
|
|
2470
2480
|
//!
|
|
2471
2481
|
//! <b>Throws</b>: Nothing.
|
|
2472
|
-
~hashtable_impl()
|
|
2473
|
-
{}
|
|
2482
|
+
~hashtable_impl();
|
|
2474
2483
|
|
|
2475
|
-
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
|
2476
2484
|
//! <b>Effects</b>: Returns an iterator pointing to the beginning of the unordered_set.
|
|
2477
2485
|
//!
|
|
2478
2486
|
//! <b>Complexity</b>: Amortized constant time.
|
|
@@ -2548,7 +2556,7 @@ class hashtable_impl
|
|
|
2548
2556
|
BOOST_IF_CONSTEXPR(constant_time_size){
|
|
2549
2557
|
return !this->size();
|
|
2550
2558
|
}
|
|
2551
|
-
else
|
|
2559
|
+
else BOOST_IF_CONSTEXPR(cache_begin){
|
|
2552
2560
|
return this->begin() == this->end();
|
|
2553
2561
|
}
|
|
2554
2562
|
else{
|
|
@@ -3066,7 +3074,7 @@ class hashtable_impl
|
|
|
3066
3074
|
|
|
3067
3075
|
std::size_t cnt(0);
|
|
3068
3076
|
if(success){
|
|
3069
|
-
|
|
3077
|
+
BOOST_IF_CONSTEXPR(optimize_multikey){
|
|
3070
3078
|
siterator past_last_in_group = it;
|
|
3071
3079
|
(priv_go_to_last_in_group)(past_last_in_group, optimize_multikey_t());
|
|
3072
3080
|
++past_last_in_group;
|
|
@@ -3741,7 +3749,8 @@ class hashtable_impl
|
|
|
3741
3749
|
friend bool operator==(const hashtable_impl &x, const hashtable_impl &y)
|
|
3742
3750
|
{
|
|
3743
3751
|
//Taken from N3068
|
|
3744
|
-
|
|
3752
|
+
BOOST_IF_CONSTEXPR(constant_time_size)
|
|
3753
|
+
if(x.size() != y.size()){
|
|
3745
3754
|
return false;
|
|
3746
3755
|
}
|
|
3747
3756
|
|
|
@@ -249,6 +249,9 @@ class list_impl
|
|
|
249
249
|
//! <b>Complexity</b>: Linear to the number of elements in the list, if
|
|
250
250
|
//! it's a safe-mode or auto-unlink value . Otherwise constant.
|
|
251
251
|
~list_impl()
|
|
252
|
+
#if defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
|
|
253
|
+
requires (ValueTraits::link_mode != normal_link)
|
|
254
|
+
#endif
|
|
252
255
|
{
|
|
253
256
|
BOOST_IF_CONSTEXPR(is_safe_autounlink<ValueTraits::link_mode>::value){
|
|
254
257
|
this->clear();
|
|
@@ -256,6 +259,11 @@ class list_impl
|
|
|
256
259
|
}
|
|
257
260
|
}
|
|
258
261
|
|
|
262
|
+
#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
|
|
263
|
+
//Default destructor for normal links (allows conditional triviality)
|
|
264
|
+
~list_impl() requires (ValueTraits::link_mode == normal_link) = default;
|
|
265
|
+
#endif
|
|
266
|
+
|
|
259
267
|
//! <b>Requires</b>: value must be an lvalue.
|
|
260
268
|
//!
|
|
261
269
|
//! <b>Effects</b>: Inserts the value in the back of the list.
|
|
@@ -1118,13 +1126,15 @@ class list_impl
|
|
|
1118
1126
|
//!
|
|
1119
1127
|
//! <b>Note</b>: The relative order of elements that are not removed is unchanged,
|
|
1120
1128
|
//! and iterators to elements that are not removed remain valid.
|
|
1121
|
-
|
|
1122
|
-
{ this->remove_if(detail::equal_to_value<const_reference>(value)); }
|
|
1129
|
+
size_type remove(const_reference value) BOOST_NOEXCEPT
|
|
1130
|
+
{ return this->remove_if(detail::equal_to_value<const_reference>(value)); }
|
|
1123
1131
|
|
|
1124
1132
|
//! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
|
|
1125
1133
|
//!
|
|
1126
1134
|
//! <b>Effects</b>: Removes all the elements that compare equal to value.
|
|
1127
1135
|
//! Disposer::operator()(pointer) is called for every removed element.
|
|
1136
|
+
//!
|
|
1137
|
+
//! <b>Returns</b>: The number of erased elements.
|
|
1128
1138
|
//!
|
|
1129
1139
|
//! <b>Throws</b>: If operator == throws. Basic guarantee.
|
|
1130
1140
|
//!
|
|
@@ -1133,12 +1143,14 @@ class list_impl
|
|
|
1133
1143
|
//! <b>Note</b>: The relative order of elements that are not removed is unchanged,
|
|
1134
1144
|
//! and iterators to elements that are not removed remain valid.
|
|
1135
1145
|
template<class Disposer>
|
|
1136
|
-
|
|
1137
|
-
{ this->remove_and_dispose_if(detail::equal_to_value<const_reference>(value), disposer); }
|
|
1146
|
+
size_type remove_and_dispose(const_reference value, Disposer disposer) BOOST_NOEXCEPT
|
|
1147
|
+
{ return this->remove_and_dispose_if(detail::equal_to_value<const_reference>(value), disposer); }
|
|
1138
1148
|
|
|
1139
1149
|
//! <b>Effects</b>: Removes all the elements for which a specified
|
|
1140
1150
|
//! predicate is satisfied. No destructors are called.
|
|
1141
1151
|
//!
|
|
1152
|
+
//! <b>Returns</b>: The number of removed elements.
|
|
1153
|
+
//!
|
|
1142
1154
|
//! <b>Throws</b>: If pred throws. Basic guarantee.
|
|
1143
1155
|
//!
|
|
1144
1156
|
//! <b>Complexity</b>: Linear time. It performs exactly size() calls to the predicate.
|
|
@@ -1146,7 +1158,7 @@ class list_impl
|
|
|
1146
1158
|
//! <b>Note</b>: The relative order of elements that are not removed is unchanged,
|
|
1147
1159
|
//! and iterators to elements that are not removed remain valid.
|
|
1148
1160
|
template<class Pred>
|
|
1149
|
-
|
|
1161
|
+
size_type remove_if(Pred pred)
|
|
1150
1162
|
{
|
|
1151
1163
|
const node_ptr root_node = this->get_root_node();
|
|
1152
1164
|
typename node_algorithms::stable_partition_info info;
|
|
@@ -1157,6 +1169,7 @@ class list_impl
|
|
|
1157
1169
|
this->erase( const_iterator(node_traits::get_next(root_node), this->priv_value_traits_ptr())
|
|
1158
1170
|
, const_iterator(info.beg_2st_partition, this->priv_value_traits_ptr())
|
|
1159
1171
|
, info.num_1st_partition);
|
|
1172
|
+
return info.num_1st_partition;
|
|
1160
1173
|
}
|
|
1161
1174
|
|
|
1162
1175
|
//! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
|
|
@@ -1165,6 +1178,8 @@ class list_impl
|
|
|
1165
1178
|
//! predicate is satisfied.
|
|
1166
1179
|
//! Disposer::operator()(pointer) is called for every removed element.
|
|
1167
1180
|
//!
|
|
1181
|
+
//! <b>Returns</b>: The number of removed elements.
|
|
1182
|
+
//!
|
|
1168
1183
|
//! <b>Throws</b>: If pred throws. Basic guarantee.
|
|
1169
1184
|
//!
|
|
1170
1185
|
//! <b>Complexity</b>: Linear time. It performs exactly size() comparisons for equality.
|
|
@@ -1172,7 +1187,7 @@ class list_impl
|
|
|
1172
1187
|
//! <b>Note</b>: The relative order of elements that are not removed is unchanged,
|
|
1173
1188
|
//! and iterators to elements that are not removed remain valid.
|
|
1174
1189
|
template<class Pred, class Disposer>
|
|
1175
|
-
|
|
1190
|
+
size_type remove_and_dispose_if(Pred pred, Disposer disposer)
|
|
1176
1191
|
{
|
|
1177
1192
|
const node_ptr root_node = this->get_root_node();
|
|
1178
1193
|
typename node_algorithms::stable_partition_info info;
|
|
@@ -1183,24 +1198,29 @@ class list_impl
|
|
|
1183
1198
|
this->erase_and_dispose( const_iterator(node_traits::get_next(root_node), this->priv_value_traits_ptr())
|
|
1184
1199
|
, const_iterator(info.beg_2st_partition, this->priv_value_traits_ptr())
|
|
1185
1200
|
, disposer);
|
|
1201
|
+
return info.num_1st_partition;
|
|
1186
1202
|
}
|
|
1187
1203
|
|
|
1188
1204
|
//! <b>Effects</b>: Removes adjacent duplicate elements or adjacent
|
|
1189
1205
|
//! elements that are equal from the list. No destructors are called.
|
|
1190
1206
|
//!
|
|
1207
|
+
//! <b>Returns</b>: The number of removed elements.
|
|
1208
|
+
//!
|
|
1191
1209
|
//! <b>Throws</b>: If the comparison operator throws. Basic guarantee.
|
|
1192
1210
|
//!
|
|
1193
1211
|
//! <b>Complexity</b>: Linear time (size()-1 comparisons calls to pred()).
|
|
1194
1212
|
//!
|
|
1195
1213
|
//! <b>Note</b>: The relative order of elements that are not removed is unchanged,
|
|
1196
1214
|
//! and iterators to elements that are not removed remain valid.
|
|
1197
|
-
|
|
1198
|
-
{ this->unique_and_dispose(value_equal<value_type>(), detail::null_disposer()); }
|
|
1215
|
+
size_type unique()
|
|
1216
|
+
{ return this->unique_and_dispose(value_equal<value_type>(), detail::null_disposer()); }
|
|
1199
1217
|
|
|
1200
1218
|
//! <b>Effects</b>: Removes adjacent duplicate elements or adjacent
|
|
1201
1219
|
//! elements that satisfy some binary predicate from the list.
|
|
1202
1220
|
//! No destructors are called.
|
|
1203
1221
|
//!
|
|
1222
|
+
//! <b>Returns</b>: The number of removed elements.
|
|
1223
|
+
//!
|
|
1204
1224
|
//! <b>Throws</b>: If pred throws. Basic guarantee.
|
|
1205
1225
|
//!
|
|
1206
1226
|
//! <b>Complexity</b>: Linear time (size()-1 comparisons equality comparisons).
|
|
@@ -1208,8 +1228,8 @@ class list_impl
|
|
|
1208
1228
|
//! <b>Note</b>: The relative order of elements that are not removed is unchanged,
|
|
1209
1229
|
//! and iterators to elements that are not removed remain valid.
|
|
1210
1230
|
template<class BinaryPredicate>
|
|
1211
|
-
|
|
1212
|
-
{ this->unique_and_dispose(pred, detail::null_disposer()); }
|
|
1231
|
+
size_type unique(BinaryPredicate pred)
|
|
1232
|
+
{ return this->unique_and_dispose(pred, detail::null_disposer()); }
|
|
1213
1233
|
|
|
1214
1234
|
//! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
|
|
1215
1235
|
//!
|
|
@@ -1217,6 +1237,8 @@ class list_impl
|
|
|
1217
1237
|
//! elements that are equal from the list.
|
|
1218
1238
|
//! Disposer::operator()(pointer) is called for every removed element.
|
|
1219
1239
|
//!
|
|
1240
|
+
//! <b>Returns</b>: The number of removed elements.
|
|
1241
|
+
//!
|
|
1220
1242
|
//! <b>Throws</b>: If the equality operator throws. Basic guarantee.
|
|
1221
1243
|
//!
|
|
1222
1244
|
//! <b>Complexity</b>: Linear time (size()-1) comparisons equality comparisons.
|
|
@@ -1224,8 +1246,8 @@ class list_impl
|
|
|
1224
1246
|
//! <b>Note</b>: The relative order of elements that are not removed is unchanged,
|
|
1225
1247
|
//! and iterators to elements that are not removed remain valid.
|
|
1226
1248
|
template<class Disposer>
|
|
1227
|
-
|
|
1228
|
-
{ this->unique_and_dispose(value_equal<value_type>(), disposer); }
|
|
1249
|
+
size_type unique_and_dispose(Disposer disposer)
|
|
1250
|
+
{ return this->unique_and_dispose(value_equal<value_type>(), disposer); }
|
|
1229
1251
|
|
|
1230
1252
|
//! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
|
|
1231
1253
|
//!
|
|
@@ -1233,6 +1255,8 @@ class list_impl
|
|
|
1233
1255
|
//! elements that satisfy some binary predicate from the list.
|
|
1234
1256
|
//! Disposer::operator()(pointer) is called for every removed element.
|
|
1235
1257
|
//!
|
|
1258
|
+
//! <b>Returns</b>: The number of removed elements.
|
|
1259
|
+
//!
|
|
1236
1260
|
//! <b>Throws</b>: If pred throws. Basic guarantee.
|
|
1237
1261
|
//!
|
|
1238
1262
|
//! <b>Complexity</b>: Linear time (size()-1) comparisons equality comparisons.
|
|
@@ -1240,10 +1264,11 @@ class list_impl
|
|
|
1240
1264
|
//! <b>Note</b>: The relative order of elements that are not removed is unchanged,
|
|
1241
1265
|
//! and iterators to elements that are not removed remain valid.
|
|
1242
1266
|
template<class BinaryPredicate, class Disposer>
|
|
1243
|
-
|
|
1267
|
+
size_type unique_and_dispose(BinaryPredicate pred, Disposer disposer)
|
|
1244
1268
|
{
|
|
1245
1269
|
const_iterator itend(this->cend());
|
|
1246
1270
|
const_iterator cur(this->cbegin());
|
|
1271
|
+
size_type n = 0;
|
|
1247
1272
|
|
|
1248
1273
|
if(cur != itend){
|
|
1249
1274
|
const_iterator after(cur);
|
|
@@ -1251,6 +1276,7 @@ class list_impl
|
|
|
1251
1276
|
while(after != itend){
|
|
1252
1277
|
if(pred(*cur, *after)){
|
|
1253
1278
|
after = this->erase_and_dispose(after, disposer);
|
|
1279
|
+
++n;
|
|
1254
1280
|
}
|
|
1255
1281
|
else{
|
|
1256
1282
|
cur = after;
|
|
@@ -1258,6 +1284,7 @@ class list_impl
|
|
|
1258
1284
|
}
|
|
1259
1285
|
}
|
|
1260
1286
|
}
|
|
1287
|
+
return n;
|
|
1261
1288
|
}
|
|
1262
1289
|
|
|
1263
1290
|
//! <b>Requires</b>: `value` must be a reference to a value inserted in an instance of this container type.
|
|
@@ -1366,7 +1393,8 @@ class list_impl
|
|
|
1366
1393
|
|
|
1367
1394
|
friend bool operator==(const list_impl &x, const list_impl &y)
|
|
1368
1395
|
{
|
|
1369
|
-
|
|
1396
|
+
BOOST_IF_CONSTEXPR(constant_time_size)
|
|
1397
|
+
if(x.size() != y.size()){
|
|
1370
1398
|
return false;
|
|
1371
1399
|
}
|
|
1372
1400
|
return ::boost::intrusive::algo_equal(x.cbegin(), x.cend(), y.cbegin(), y.cend());
|