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
|
@@ -643,11 +643,11 @@ class flat_tree
|
|
|
643
643
|
: m_data(boost::move(x.m_data))
|
|
644
644
|
{ }
|
|
645
645
|
|
|
646
|
-
inline flat_tree(const flat_tree& x, const allocator_type &a)
|
|
646
|
+
inline flat_tree(const flat_tree& x, const BOOST_CONTAINER_DOC1ST(allocator_type, typename dtl::type_identity<allocator_type>::type) &a)
|
|
647
647
|
: m_data(x.m_data, a)
|
|
648
648
|
{ }
|
|
649
649
|
|
|
650
|
-
inline flat_tree(BOOST_RV_REF(flat_tree) x, const allocator_type &a)
|
|
650
|
+
inline flat_tree(BOOST_RV_REF(flat_tree) x, const BOOST_CONTAINER_DOC1ST(allocator_type, typename dtl::type_identity<allocator_type>::type) &a)
|
|
651
651
|
: m_data(boost::move(x.m_data), a)
|
|
652
652
|
{ }
|
|
653
653
|
|
|
@@ -772,87 +772,87 @@ class flat_tree
|
|
|
772
772
|
|
|
773
773
|
public:
|
|
774
774
|
// accessors:
|
|
775
|
-
|
|
775
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
776
776
|
Compare key_comp() const
|
|
777
777
|
{ return this->m_data.get_comp(); }
|
|
778
778
|
|
|
779
|
-
|
|
779
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
780
780
|
value_compare value_comp() const
|
|
781
781
|
{ return this->m_data; }
|
|
782
782
|
|
|
783
|
-
|
|
783
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
784
784
|
allocator_type get_allocator() const
|
|
785
785
|
{ return this->m_data.m_seq.get_allocator(); }
|
|
786
786
|
|
|
787
|
-
|
|
787
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
788
788
|
get_stored_allocator_const_return_t get_stored_allocator() const
|
|
789
789
|
{
|
|
790
790
|
return flat_tree_get_stored_allocator(this->m_data.m_seq, dtl::bool_<has_stored_allocator_type>());
|
|
791
791
|
}
|
|
792
792
|
|
|
793
|
-
|
|
793
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
794
794
|
get_stored_allocator_noconst_return_t get_stored_allocator()
|
|
795
795
|
{
|
|
796
796
|
return flat_tree_get_stored_allocator(this->m_data.m_seq, dtl::bool_<has_stored_allocator_type>());
|
|
797
797
|
}
|
|
798
798
|
|
|
799
|
-
|
|
799
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
800
800
|
iterator begin()
|
|
801
801
|
{ return this->m_data.m_seq.begin(); }
|
|
802
802
|
|
|
803
|
-
|
|
803
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
804
804
|
const_iterator begin() const
|
|
805
805
|
{ return this->cbegin(); }
|
|
806
806
|
|
|
807
|
-
|
|
807
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
808
808
|
const_iterator cbegin() const
|
|
809
809
|
{ return this->m_data.m_seq.begin(); }
|
|
810
810
|
|
|
811
|
-
|
|
811
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
812
812
|
iterator end()
|
|
813
813
|
{ return this->m_data.m_seq.end(); }
|
|
814
814
|
|
|
815
|
-
|
|
815
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
816
816
|
const_iterator end() const
|
|
817
817
|
{ return this->cend(); }
|
|
818
818
|
|
|
819
|
-
|
|
819
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
820
820
|
const_iterator cend() const
|
|
821
821
|
{ return this->m_data.m_seq.end(); }
|
|
822
822
|
|
|
823
|
-
|
|
823
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
824
824
|
reverse_iterator rbegin()
|
|
825
825
|
{ return reverse_iterator(this->end()); }
|
|
826
826
|
|
|
827
|
-
|
|
827
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
828
828
|
const_reverse_iterator rbegin() const
|
|
829
829
|
{ return this->crbegin(); }
|
|
830
830
|
|
|
831
|
-
|
|
831
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
832
832
|
const_reverse_iterator crbegin() const
|
|
833
833
|
{ return const_reverse_iterator(this->cend()); }
|
|
834
834
|
|
|
835
|
-
|
|
835
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
836
836
|
reverse_iterator rend()
|
|
837
837
|
{ return reverse_iterator(this->begin()); }
|
|
838
838
|
|
|
839
|
-
|
|
839
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
840
840
|
const_reverse_iterator rend() const
|
|
841
841
|
{ return this->crend(); }
|
|
842
842
|
|
|
843
|
-
|
|
843
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
844
844
|
const_reverse_iterator crend() const
|
|
845
845
|
{ return const_reverse_iterator(this->cbegin()); }
|
|
846
846
|
|
|
847
|
-
|
|
847
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
848
848
|
bool empty() const
|
|
849
849
|
{ return this->m_data.m_seq.empty(); }
|
|
850
850
|
|
|
851
|
-
|
|
851
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
852
852
|
size_type size() const
|
|
853
853
|
{ return this->m_data.m_seq.size(); }
|
|
854
854
|
|
|
855
|
-
|
|
855
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
856
856
|
size_type max_size() const
|
|
857
857
|
{ return this->m_data.m_seq.max_size(); }
|
|
858
858
|
|
|
@@ -885,6 +885,18 @@ class flat_tree
|
|
|
885
885
|
return ret;
|
|
886
886
|
}
|
|
887
887
|
|
|
888
|
+
template<class Convertible>
|
|
889
|
+
std::pair<iterator,bool> insert_unique(BOOST_FWD_REF(Convertible) val)
|
|
890
|
+
{
|
|
891
|
+
std::pair<iterator,bool> ret;
|
|
892
|
+
insert_commit_data data;
|
|
893
|
+
ret.second = this->priv_insert_unique_prepare(KeyOfValue()(val), data);
|
|
894
|
+
ret.first = ret.second ? this->priv_insert_commit(data, boost::move(val))
|
|
895
|
+
: this->begin() + (data.position - this->cbegin());
|
|
896
|
+
//: iterator(vector_iterator_get_ptr(data.position));
|
|
897
|
+
return ret;
|
|
898
|
+
}
|
|
899
|
+
|
|
888
900
|
iterator insert_equal(const value_type& val)
|
|
889
901
|
{
|
|
890
902
|
iterator i = this->upper_bound(KeyOfValue()(val));
|
|
@@ -919,6 +931,21 @@ class flat_tree
|
|
|
919
931
|
//: iterator(vector_iterator_get_ptr(data.position));
|
|
920
932
|
}
|
|
921
933
|
|
|
934
|
+
template<class K>
|
|
935
|
+
inline typename dtl::enable_if_c<
|
|
936
|
+
!dtl::is_convertible<K, iterator>::value && //not convertible to iterator
|
|
937
|
+
!dtl::is_convertible<K, const_iterator>::value //not convertible to const_iterator
|
|
938
|
+
, iterator>::type
|
|
939
|
+
insert_unique(const_iterator hint, BOOST_FWD_REF(K) val)
|
|
940
|
+
{
|
|
941
|
+
BOOST_ASSERT(this->priv_in_range_or_end(hint));
|
|
942
|
+
insert_commit_data data;
|
|
943
|
+
return this->priv_insert_unique_prepare(hint, KeyOfValue()(val), data)
|
|
944
|
+
? this->priv_insert_commit(data, boost::move(val))
|
|
945
|
+
: this->begin() + (data.position - this->cbegin());
|
|
946
|
+
//: iterator(vector_iterator_get_ptr(data.position));
|
|
947
|
+
}
|
|
948
|
+
|
|
922
949
|
iterator insert_equal(const_iterator hint, const value_type& val)
|
|
923
950
|
{
|
|
924
951
|
BOOST_ASSERT(this->priv_in_range_or_end(hint));
|
|
@@ -936,7 +963,7 @@ class flat_tree
|
|
|
936
963
|
}
|
|
937
964
|
|
|
938
965
|
template <class InIt>
|
|
939
|
-
void
|
|
966
|
+
void insert_unique_range(InIt first, InIt last)
|
|
940
967
|
{
|
|
941
968
|
dtl::bool_<is_contiguous_container<container_type>::value> contiguous_tag;
|
|
942
969
|
container_type &seq = this->m_data.m_seq;
|
|
@@ -963,7 +990,7 @@ class flat_tree
|
|
|
963
990
|
}
|
|
964
991
|
|
|
965
992
|
template <class InIt>
|
|
966
|
-
void
|
|
993
|
+
void insert_equal_range(InIt first, InIt last)
|
|
967
994
|
{
|
|
968
995
|
if (first != last) {
|
|
969
996
|
dtl::bool_<is_contiguous_container<container_type>::value> contiguous_tag;
|
|
@@ -977,7 +1004,7 @@ class flat_tree
|
|
|
977
1004
|
//Ordered
|
|
978
1005
|
|
|
979
1006
|
template <class InIt>
|
|
980
|
-
void
|
|
1007
|
+
void insert_equal_range(ordered_range_t, InIt first, InIt last)
|
|
981
1008
|
{
|
|
982
1009
|
const bool value = boost::container::dtl::
|
|
983
1010
|
has_member_function_callable_with_merge_unique<container_type, InIt, InIt, value_compare>::value;
|
|
@@ -985,7 +1012,7 @@ class flat_tree
|
|
|
985
1012
|
}
|
|
986
1013
|
|
|
987
1014
|
template <class InIt>
|
|
988
|
-
void
|
|
1015
|
+
void insert_unique_range(ordered_unique_range_t, InIt first, InIt last)
|
|
989
1016
|
{
|
|
990
1017
|
const bool value = boost::container::dtl::
|
|
991
1018
|
has_member_function_callable_with_merge_unique<container_type, InIt, InIt, value_compare>::value;
|
|
@@ -1040,16 +1067,32 @@ class flat_tree
|
|
|
1040
1067
|
return this->insert_equal(hint, ::boost::move(*pval));
|
|
1041
1068
|
}
|
|
1042
1069
|
|
|
1070
|
+
template <class KeyType, class... Args>
|
|
1071
|
+
inline std::pair<iterator, bool> try_emplace
|
|
1072
|
+
(BOOST_FWD_REF(KeyType) key, BOOST_FWD_REF(Args)... args)
|
|
1073
|
+
{
|
|
1074
|
+
std::pair<iterator,bool> ret;
|
|
1075
|
+
insert_commit_data data;
|
|
1076
|
+
const typename remove_cvref<KeyType>::type & k = key; //Support emulated rvalue references
|
|
1077
|
+
ret.second = this->priv_insert_unique_prepare(k, data);
|
|
1078
|
+
|
|
1079
|
+
if(!ret.second){
|
|
1080
|
+
ret.first = this->nth(size_type(data.position - this->cbegin()));
|
|
1081
|
+
}
|
|
1082
|
+
else{
|
|
1083
|
+
ret.first = this->m_data.m_seq.emplace(data.position, try_emplace_t(), ::boost::forward<KeyType>(key), ::boost::forward<Args>(args)...);
|
|
1084
|
+
}
|
|
1085
|
+
return ret;
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1043
1088
|
template <class KeyType, class... Args>
|
|
1044
1089
|
inline std::pair<iterator, bool> try_emplace
|
|
1045
1090
|
(const_iterator hint, BOOST_FWD_REF(KeyType) key, BOOST_FWD_REF(Args)... args)
|
|
1046
1091
|
{
|
|
1047
1092
|
std::pair<iterator,bool> ret;
|
|
1048
1093
|
insert_commit_data data;
|
|
1049
|
-
const
|
|
1050
|
-
ret.second = hint
|
|
1051
|
-
? this->priv_insert_unique_prepare(k, data)
|
|
1052
|
-
: this->priv_insert_unique_prepare(hint, k, data);
|
|
1094
|
+
const typename remove_cvref<KeyType>::type & k = key; //Support emulated rvalue references
|
|
1095
|
+
ret.second = this->priv_insert_unique_prepare(hint, k, data);
|
|
1053
1096
|
|
|
1054
1097
|
if(!ret.second){
|
|
1055
1098
|
ret.first = this->nth(size_type(data.position - this->cbegin()));
|
|
@@ -1107,15 +1150,30 @@ class flat_tree
|
|
|
1107
1150
|
return this->insert_equal(hint, ::boost::move(*pval));\
|
|
1108
1151
|
}\
|
|
1109
1152
|
template <class KeyType BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
|
|
1153
|
+
inline std::pair<iterator, bool>\
|
|
1154
|
+
try_emplace(BOOST_FWD_REF(KeyType) key BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
1155
|
+
{\
|
|
1156
|
+
std::pair<iterator,bool> ret;\
|
|
1157
|
+
insert_commit_data data;\
|
|
1158
|
+
const typename remove_cvref<KeyType>::type & k = key;\
|
|
1159
|
+
ret.second = this->priv_insert_unique_prepare(k, data);\
|
|
1160
|
+
\
|
|
1161
|
+
if(!ret.second){\
|
|
1162
|
+
ret.first = this->nth(size_type(data.position - this->cbegin()));\
|
|
1163
|
+
}\
|
|
1164
|
+
else{\
|
|
1165
|
+
ret.first = this->m_data.m_seq.emplace(data.position, try_emplace_t(), ::boost::forward<KeyType>(key) BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
1166
|
+
}\
|
|
1167
|
+
return ret;\
|
|
1168
|
+
}\
|
|
1169
|
+
template <class KeyType BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
|
|
1110
1170
|
inline std::pair<iterator, bool>\
|
|
1111
1171
|
try_emplace(const_iterator hint, BOOST_FWD_REF(KeyType) key BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
1112
1172
|
{\
|
|
1113
1173
|
std::pair<iterator,bool> ret;\
|
|
1114
1174
|
insert_commit_data data;\
|
|
1115
|
-
const
|
|
1116
|
-
ret.second = hint
|
|
1117
|
-
? this->priv_insert_unique_prepare(k, data)\
|
|
1118
|
-
: this->priv_insert_unique_prepare(hint, k, data);\
|
|
1175
|
+
const typename remove_cvref<KeyType>::type & k = key;\
|
|
1176
|
+
ret.second = this->priv_insert_unique_prepare(hint, k, data);\
|
|
1119
1177
|
\
|
|
1120
1178
|
if(!ret.second){\
|
|
1121
1179
|
ret.first = this->nth(size_type(data.position - this->cbegin()));\
|
|
@@ -1131,15 +1189,30 @@ class flat_tree
|
|
|
1131
1189
|
|
|
1132
1190
|
#endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
1133
1191
|
|
|
1192
|
+
template<class KeyType, class M>
|
|
1193
|
+
std::pair<iterator, bool> insert_or_assign(BOOST_FWD_REF(KeyType) key, BOOST_FWD_REF(M) obj)
|
|
1194
|
+
{
|
|
1195
|
+
const typename remove_cvref<KeyType>::type & k = key; //Support emulated rvalue references
|
|
1196
|
+
std::pair<iterator,bool> ret;
|
|
1197
|
+
insert_commit_data data;
|
|
1198
|
+
ret.second = this->priv_insert_unique_prepare(k, data);
|
|
1199
|
+
if(!ret.second){
|
|
1200
|
+
ret.first = this->nth(size_type(data.position - this->cbegin()));
|
|
1201
|
+
ret.first->second = boost::forward<M>(obj);
|
|
1202
|
+
}
|
|
1203
|
+
else{
|
|
1204
|
+
ret.first = this->m_data.m_seq.emplace(data.position, boost::forward<KeyType>(key), boost::forward<M>(obj));
|
|
1205
|
+
}
|
|
1206
|
+
return ret;
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1134
1209
|
template<class KeyType, class M>
|
|
1135
1210
|
std::pair<iterator, bool> insert_or_assign(const_iterator hint, BOOST_FWD_REF(KeyType) key, BOOST_FWD_REF(M) obj)
|
|
1136
1211
|
{
|
|
1137
|
-
const
|
|
1212
|
+
const typename remove_cvref<KeyType>::type & k = key; //Support emulated rvalue references
|
|
1138
1213
|
std::pair<iterator,bool> ret;
|
|
1139
1214
|
insert_commit_data data;
|
|
1140
|
-
ret.second = hint
|
|
1141
|
-
? this->priv_insert_unique_prepare(k, data)
|
|
1142
|
-
: this->priv_insert_unique_prepare(hint, k, data);
|
|
1215
|
+
ret.second = this->priv_insert_unique_prepare(hint, k, data);
|
|
1143
1216
|
if(!ret.second){
|
|
1144
1217
|
ret.first = this->nth(size_type(data.position - this->cbegin()));
|
|
1145
1218
|
ret.first->second = boost::forward<M>(obj);
|
|
@@ -1226,7 +1299,7 @@ class flat_tree
|
|
|
1226
1299
|
return flat_tree_nth<iterator>(this->m_data.m_seq, n, dtl::bool_<value>());
|
|
1227
1300
|
}
|
|
1228
1301
|
|
|
1229
|
-
|
|
1302
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1230
1303
|
const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1231
1304
|
{
|
|
1232
1305
|
const bool value = boost::container::dtl::
|
|
@@ -1234,7 +1307,7 @@ class flat_tree
|
|
|
1234
1307
|
return flat_tree_nth<const_iterator>(this->m_data.m_seq, n, dtl::bool_<value>());
|
|
1235
1308
|
}
|
|
1236
1309
|
|
|
1237
|
-
|
|
1310
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1238
1311
|
size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
|
|
1239
1312
|
{
|
|
1240
1313
|
const bool value = boost::container::dtl::
|
|
@@ -1242,7 +1315,7 @@ class flat_tree
|
|
|
1242
1315
|
return flat_tree_index_of(this->m_data.m_seq, p, dtl::bool_<value>());
|
|
1243
1316
|
}
|
|
1244
1317
|
|
|
1245
|
-
|
|
1318
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1246
1319
|
size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1247
1320
|
{
|
|
1248
1321
|
const bool value = boost::container::dtl::
|
|
@@ -1251,7 +1324,7 @@ class flat_tree
|
|
|
1251
1324
|
}
|
|
1252
1325
|
|
|
1253
1326
|
// set operations:
|
|
1254
|
-
|
|
1327
|
+
BOOST_CONTAINER_NODISCARD
|
|
1255
1328
|
iterator find(const key_type& k)
|
|
1256
1329
|
{
|
|
1257
1330
|
iterator i = this->lower_bound(k);
|
|
@@ -1262,7 +1335,7 @@ class flat_tree
|
|
|
1262
1335
|
return i;
|
|
1263
1336
|
}
|
|
1264
1337
|
|
|
1265
|
-
|
|
1338
|
+
BOOST_CONTAINER_NODISCARD
|
|
1266
1339
|
const_iterator find(const key_type& k) const
|
|
1267
1340
|
{
|
|
1268
1341
|
const_iterator i = this->lower_bound(k);
|
|
@@ -1275,7 +1348,7 @@ class flat_tree
|
|
|
1275
1348
|
}
|
|
1276
1349
|
|
|
1277
1350
|
template<class K>
|
|
1278
|
-
|
|
1351
|
+
BOOST_CONTAINER_NODISCARD
|
|
1279
1352
|
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
|
|
1280
1353
|
find(const K& k)
|
|
1281
1354
|
{
|
|
@@ -1288,7 +1361,7 @@ class flat_tree
|
|
|
1288
1361
|
}
|
|
1289
1362
|
|
|
1290
1363
|
template<class K>
|
|
1291
|
-
|
|
1364
|
+
BOOST_CONTAINER_NODISCARD
|
|
1292
1365
|
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::type
|
|
1293
1366
|
find(const K& k) const
|
|
1294
1367
|
{
|
|
@@ -1301,7 +1374,7 @@ class flat_tree
|
|
|
1301
1374
|
return i;
|
|
1302
1375
|
}
|
|
1303
1376
|
|
|
1304
|
-
|
|
1377
|
+
BOOST_CONTAINER_NODISCARD
|
|
1305
1378
|
size_type count(const key_type& k) const
|
|
1306
1379
|
{
|
|
1307
1380
|
std::pair<const_iterator, const_iterator> p = this->equal_range(k);
|
|
@@ -1310,7 +1383,7 @@ class flat_tree
|
|
|
1310
1383
|
}
|
|
1311
1384
|
|
|
1312
1385
|
template<class K>
|
|
1313
|
-
|
|
1386
|
+
BOOST_CONTAINER_NODISCARD
|
|
1314
1387
|
typename dtl::enable_if_transparent<key_compare, K, size_type>::type
|
|
1315
1388
|
count(const K& k) const
|
|
1316
1389
|
{
|
|
@@ -1319,11 +1392,11 @@ class flat_tree
|
|
|
1319
1392
|
return n;
|
|
1320
1393
|
}
|
|
1321
1394
|
|
|
1322
|
-
|
|
1395
|
+
BOOST_CONTAINER_NODISCARD inline bool contains(const key_type& x) const
|
|
1323
1396
|
{ return this->find(x) != this->cend(); }
|
|
1324
1397
|
|
|
1325
1398
|
template<typename K>
|
|
1326
|
-
|
|
1399
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1327
1400
|
typename dtl::enable_if_transparent<key_compare, K, bool>::type
|
|
1328
1401
|
contains(const K& x) const
|
|
1329
1402
|
{ return this->find(x) != this->cend(); }
|
|
@@ -1331,15 +1404,15 @@ class flat_tree
|
|
|
1331
1404
|
template<class C2>
|
|
1332
1405
|
inline void merge_unique(flat_tree<Value, KeyOfValue, C2, AllocatorOrContainer>& source)
|
|
1333
1406
|
{
|
|
1334
|
-
this->
|
|
1335
|
-
|
|
1407
|
+
this->insert_unique_range( boost::make_move_iterator(source.begin())
|
|
1408
|
+
, boost::make_move_iterator(source.end()));
|
|
1336
1409
|
}
|
|
1337
1410
|
|
|
1338
1411
|
template<class C2>
|
|
1339
1412
|
inline void merge_equal(flat_tree<Value, KeyOfValue, C2, AllocatorOrContainer>& source)
|
|
1340
1413
|
{
|
|
1341
|
-
this->
|
|
1342
|
-
|
|
1414
|
+
this->insert_equal_range( boost::make_move_iterator(source.begin())
|
|
1415
|
+
, boost::make_move_iterator(source.end()));
|
|
1343
1416
|
}
|
|
1344
1417
|
|
|
1345
1418
|
inline void merge_unique(flat_tree& source)
|
|
@@ -1366,88 +1439,88 @@ class flat_tree
|
|
|
1366
1439
|
, dtl::bool_<value>());
|
|
1367
1440
|
}
|
|
1368
1441
|
|
|
1369
|
-
|
|
1442
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1370
1443
|
iterator lower_bound(const key_type& k)
|
|
1371
1444
|
{ return this->priv_lower_bound(this->begin(), this->end(), k); }
|
|
1372
1445
|
|
|
1373
|
-
|
|
1446
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1374
1447
|
const_iterator lower_bound(const key_type& k) const
|
|
1375
1448
|
{ return this->priv_lower_bound(this->cbegin(), this->cend(), k); }
|
|
1376
1449
|
|
|
1377
1450
|
template<class K>
|
|
1378
|
-
|
|
1451
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1379
1452
|
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
|
|
1380
1453
|
lower_bound(const K& k)
|
|
1381
1454
|
{ return this->priv_lower_bound(this->begin(), this->end(), k); }
|
|
1382
1455
|
|
|
1383
1456
|
template<class K>
|
|
1384
|
-
|
|
1457
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1385
1458
|
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::type
|
|
1386
1459
|
lower_bound(const K& k) const
|
|
1387
1460
|
{ return this->priv_lower_bound(this->cbegin(), this->cend(), k); }
|
|
1388
1461
|
|
|
1389
|
-
|
|
1462
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1390
1463
|
iterator upper_bound(const key_type& k)
|
|
1391
1464
|
{ return this->priv_upper_bound(this->begin(), this->end(), k); }
|
|
1392
1465
|
|
|
1393
|
-
|
|
1466
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1394
1467
|
const_iterator upper_bound(const key_type& k) const
|
|
1395
1468
|
{ return this->priv_upper_bound(this->cbegin(), this->cend(), k); }
|
|
1396
1469
|
|
|
1397
1470
|
template<class K>
|
|
1398
|
-
|
|
1471
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1399
1472
|
typename dtl::enable_if_transparent<key_compare, K,iterator>::type
|
|
1400
1473
|
upper_bound(const K& k)
|
|
1401
1474
|
{ return this->priv_upper_bound(this->begin(), this->end(), k); }
|
|
1402
1475
|
|
|
1403
1476
|
template<class K>
|
|
1404
|
-
|
|
1477
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1405
1478
|
typename dtl::enable_if_transparent<key_compare, K,const_iterator>::type
|
|
1406
1479
|
upper_bound(const K& k) const
|
|
1407
1480
|
{ return this->priv_upper_bound(this->cbegin(), this->cend(), k); }
|
|
1408
1481
|
|
|
1409
|
-
|
|
1482
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1410
1483
|
std::pair<iterator,iterator> equal_range(const key_type& k)
|
|
1411
1484
|
{ return this->priv_equal_range(this->begin(), this->end(), k); }
|
|
1412
1485
|
|
|
1413
|
-
|
|
1486
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1414
1487
|
std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const
|
|
1415
1488
|
{ return this->priv_equal_range(this->cbegin(), this->cend(), k); }
|
|
1416
1489
|
|
|
1417
1490
|
template<class K>
|
|
1418
|
-
|
|
1491
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1419
1492
|
typename dtl::enable_if_transparent<key_compare, K, std::pair<iterator,iterator> >::type
|
|
1420
1493
|
equal_range(const K& k)
|
|
1421
1494
|
{ return this->priv_equal_range(this->begin(), this->end(), k); }
|
|
1422
1495
|
|
|
1423
1496
|
template<class K>
|
|
1424
|
-
|
|
1497
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1425
1498
|
typename dtl::enable_if_transparent<key_compare, K,std::pair<const_iterator,const_iterator> >::type
|
|
1426
1499
|
equal_range(const K& k) const
|
|
1427
1500
|
{ return this->priv_equal_range(this->cbegin(), this->cend(), k); }
|
|
1428
1501
|
|
|
1429
1502
|
|
|
1430
|
-
|
|
1503
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1431
1504
|
std::pair<iterator, iterator> lower_bound_range(const key_type& k)
|
|
1432
1505
|
{ return this->priv_lower_bound_range(this->begin(), this->end(), k); }
|
|
1433
1506
|
|
|
1434
|
-
|
|
1507
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1435
1508
|
std::pair<const_iterator, const_iterator> lower_bound_range(const key_type& k) const
|
|
1436
1509
|
{ return this->priv_lower_bound_range(this->cbegin(), this->cend(), k); }
|
|
1437
1510
|
|
|
1438
1511
|
template<class K>
|
|
1439
|
-
|
|
1512
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1440
1513
|
typename dtl::enable_if_transparent<key_compare, K,std::pair<iterator,iterator> >::type
|
|
1441
1514
|
lower_bound_range(const K& k)
|
|
1442
1515
|
{ return this->priv_lower_bound_range(this->begin(), this->end(), k); }
|
|
1443
1516
|
|
|
1444
1517
|
template<class K>
|
|
1445
|
-
|
|
1518
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1446
1519
|
typename dtl::enable_if_transparent<key_compare, K,std::pair<const_iterator,const_iterator> >::type
|
|
1447
1520
|
lower_bound_range(const K& k) const
|
|
1448
1521
|
{ return this->priv_lower_bound_range(this->cbegin(), this->cend(), k); }
|
|
1449
1522
|
|
|
1450
|
-
|
|
1523
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1451
1524
|
size_type capacity() const
|
|
1452
1525
|
{
|
|
1453
1526
|
const bool value = boost::container::dtl::
|
|
@@ -1463,15 +1536,15 @@ class flat_tree
|
|
|
1463
1536
|
(flat_tree_reserve)(this->m_data.m_seq, cnt, dtl::bool_<value>());
|
|
1464
1537
|
}
|
|
1465
1538
|
|
|
1466
|
-
|
|
1539
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1467
1540
|
container_type extract_sequence()
|
|
1468
1541
|
{ return boost::move(m_data.m_seq); }
|
|
1469
1542
|
|
|
1470
|
-
|
|
1543
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1471
1544
|
container_type &get_sequence_ref()
|
|
1472
1545
|
{ return m_data.m_seq; }
|
|
1473
1546
|
|
|
1474
|
-
|
|
1547
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1475
1548
|
const container_type &get_sequence_cref() const
|
|
1476
1549
|
{ return m_data.m_seq; }
|
|
1477
1550
|
|
|
@@ -1499,31 +1572,31 @@ class flat_tree
|
|
|
1499
1572
|
m_data.m_seq = boost::move(seq);
|
|
1500
1573
|
}
|
|
1501
1574
|
|
|
1502
|
-
|
|
1575
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1503
1576
|
friend bool operator==(const flat_tree& x, const flat_tree& y)
|
|
1504
1577
|
{
|
|
1505
1578
|
return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin());
|
|
1506
1579
|
}
|
|
1507
1580
|
|
|
1508
|
-
|
|
1581
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1509
1582
|
friend bool operator<(const flat_tree& x, const flat_tree& y)
|
|
1510
1583
|
{
|
|
1511
1584
|
return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end());
|
|
1512
1585
|
}
|
|
1513
1586
|
|
|
1514
|
-
|
|
1587
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1515
1588
|
friend bool operator!=(const flat_tree& x, const flat_tree& y)
|
|
1516
1589
|
{ return !(x == y); }
|
|
1517
1590
|
|
|
1518
|
-
|
|
1591
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1519
1592
|
friend bool operator>(const flat_tree& x, const flat_tree& y)
|
|
1520
1593
|
{ return y < x; }
|
|
1521
1594
|
|
|
1522
|
-
|
|
1595
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1523
1596
|
friend bool operator<=(const flat_tree& x, const flat_tree& y)
|
|
1524
1597
|
{ return !(y < x); }
|
|
1525
1598
|
|
|
1526
|
-
|
|
1599
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
1527
1600
|
friend bool operator>=(const flat_tree& x, const flat_tree& y)
|
|
1528
1601
|
{ return !(x < y); }
|
|
1529
1602
|
|
|
@@ -1541,10 +1614,10 @@ class flat_tree
|
|
|
1541
1614
|
//for the constructor
|
|
1542
1615
|
//Call end() every iteration as reallocation might have invalidated iterators
|
|
1543
1616
|
if(unique_insertion){
|
|
1544
|
-
this->
|
|
1617
|
+
this->insert_unique_range(first, last);
|
|
1545
1618
|
}
|
|
1546
1619
|
else{
|
|
1547
|
-
this->
|
|
1620
|
+
this->insert_equal_range(first, last);
|
|
1548
1621
|
}
|
|
1549
1622
|
}
|
|
1550
1623
|
|
|
@@ -1583,20 +1656,23 @@ class flat_tree
|
|
|
1583
1656
|
}
|
|
1584
1657
|
}
|
|
1585
1658
|
|
|
1659
|
+
template<class K>
|
|
1586
1660
|
bool priv_insert_unique_prepare
|
|
1587
|
-
(const_iterator b, const_iterator e, const
|
|
1661
|
+
(const_iterator b, const_iterator e, const K& k, insert_commit_data &commit_data)
|
|
1588
1662
|
{
|
|
1589
1663
|
const key_compare &key_cmp = this->priv_key_comp();
|
|
1590
1664
|
commit_data.position = this->priv_lower_bound(b, e, k);
|
|
1591
1665
|
return commit_data.position == e || key_cmp(k, KeyOfValue()(*commit_data.position));
|
|
1592
1666
|
}
|
|
1593
1667
|
|
|
1668
|
+
template<class K>
|
|
1594
1669
|
inline bool priv_insert_unique_prepare
|
|
1595
|
-
(const
|
|
1670
|
+
(const K& k, insert_commit_data &commit_data)
|
|
1596
1671
|
{ return this->priv_insert_unique_prepare(this->cbegin(), this->cend(), k, commit_data); }
|
|
1597
1672
|
|
|
1673
|
+
template<class K>
|
|
1598
1674
|
bool priv_insert_unique_prepare
|
|
1599
|
-
(const_iterator pos, const
|
|
1675
|
+
(const_iterator pos, const K& k, insert_commit_data &commit_data)
|
|
1600
1676
|
{
|
|
1601
1677
|
//N1780. Props to Howard Hinnant!
|
|
1602
1678
|
//To insert k at pos:
|
|
@@ -1642,7 +1718,7 @@ class flat_tree
|
|
|
1642
1718
|
inline iterator priv_insert_commit
|
|
1643
1719
|
(insert_commit_data &commit_data, BOOST_FWD_REF(Convertible) convertible)
|
|
1644
1720
|
{
|
|
1645
|
-
return this->m_data.m_seq.
|
|
1721
|
+
return this->m_data.m_seq.emplace
|
|
1646
1722
|
( commit_data.position
|
|
1647
1723
|
, boost::forward<Convertible>(convertible));
|
|
1648
1724
|
}
|