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
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
//
|
|
3
|
+
// (C) Copyright Ion Gaztanaga 2025-2025. Distributed under the Boost
|
|
4
|
+
// Software License, Version 1.0. (See accompanying file
|
|
5
|
+
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
6
|
+
//
|
|
7
|
+
// See http://www.boost.org/libs/container for documentation.
|
|
8
|
+
//
|
|
9
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
10
|
+
#ifndef BOOST_CONTAINER_DETAIL_ALIGNED_ALLOCATION_HPP
|
|
11
|
+
#define BOOST_CONTAINER_DETAIL_ALIGNED_ALLOCATION_HPP
|
|
12
|
+
|
|
13
|
+
#ifndef BOOST_CONFIG_HPP
|
|
14
|
+
# include <boost/config.hpp>
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
|
18
|
+
# pragma once
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
// Platform detection
|
|
22
|
+
#if defined(_WIN32) && !defined(__CYGWIN__)
|
|
23
|
+
#define BOOST_CONTAINER_HAS_ALIGNED_MALLOC
|
|
24
|
+
#elif BOOST_CXX_VERSION >= 201703L
|
|
25
|
+
#define BOOST_CONTAINER_HAS_ALIGNED_ALLOC
|
|
26
|
+
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
|
|
27
|
+
//Note: in most C++ compilers __STDC_VERSION__ is not defined, but just in case
|
|
28
|
+
#define BOOST_CONTAINER_HAS_ALIGNED_ALLOC
|
|
29
|
+
#else
|
|
30
|
+
#include <unistd.h> //Include it to detect POSIX features
|
|
31
|
+
#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L)
|
|
32
|
+
#define BOOST_CONTAINER_HAS_POSIX_MEMALIGN
|
|
33
|
+
#elif defined(__APPLE__)
|
|
34
|
+
//All recent Apple OSes (macOS 10.6+, iOS 3.0+, tvOS 9.0+, watchOS 2.0+) support posix_memalign
|
|
35
|
+
#define BOOST_CONTAINER_HAS_POSIX_MEMALIGN
|
|
36
|
+
#elif defined(__ANDROID__)
|
|
37
|
+
#if (__ANDROID_API__ >= 28)
|
|
38
|
+
#define BOOST_CONTAINER_HAS_ALIGNED_ALLOC
|
|
39
|
+
#else
|
|
40
|
+
#define BOOST_CONTAINER_HAS_POSIX_MEMALIGN
|
|
41
|
+
#endif
|
|
42
|
+
#endif
|
|
43
|
+
#endif
|
|
44
|
+
|
|
45
|
+
// Include
|
|
46
|
+
#if defined(BOOST_CONTAINER_HAS_ALIGNED_MALLOC)
|
|
47
|
+
#include <malloc.h>
|
|
48
|
+
#elif defined(BOOST_CONTAINER_HAS_POSIX_MEMALIGN)
|
|
49
|
+
#include <stdlib.h>
|
|
50
|
+
#elif defined(BOOST_CONTAINER_HAS_ALIGNED_ALLOC)
|
|
51
|
+
#include <stdlib.h>
|
|
52
|
+
#else
|
|
53
|
+
#include <stdlib.h> //for malloc
|
|
54
|
+
#endif
|
|
55
|
+
|
|
56
|
+
namespace boost {
|
|
57
|
+
namespace container {
|
|
58
|
+
namespace dtl {
|
|
59
|
+
|
|
60
|
+
#if defined(BOOST_CONTAINER_HAS_POSIX_MEMALIGN)
|
|
61
|
+
|
|
62
|
+
inline void* aligned_allocate(std::size_t al, std::size_t sz)
|
|
63
|
+
{
|
|
64
|
+
void *ptr;
|
|
65
|
+
// posix_memalign requires aligned multiple of void*
|
|
66
|
+
if (al < sizeof(void*))
|
|
67
|
+
al = sizeof(void*);
|
|
68
|
+
int ret = posix_memalign(&ptr, al, sz);
|
|
69
|
+
if (ret != 0)
|
|
70
|
+
return 0;
|
|
71
|
+
return ptr;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
#elif defined(BOOST_CONTAINER_HAS_ALIGNED_ALLOC)
|
|
75
|
+
|
|
76
|
+
inline void* aligned_allocate(std::size_t al, std::size_t sz)
|
|
77
|
+
{
|
|
78
|
+
// Some aligned_allocate are based on posix_memalign so require also minimal alignment
|
|
79
|
+
if (al < sizeof(void*))
|
|
80
|
+
al = sizeof(void*);
|
|
81
|
+
|
|
82
|
+
// aligned_allocate requires size to be a multiple of alignment
|
|
83
|
+
std::size_t rounded_size = std::size_t(sz + al - 1u) & ~std::size_t(al - 1);
|
|
84
|
+
|
|
85
|
+
//Check for rounded size overflow
|
|
86
|
+
return rounded_size ? ::aligned_alloc(al, rounded_size) : 0;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
#elif defined(BOOST_CONTAINER_HAS_ALIGNED_MALLOC)
|
|
90
|
+
|
|
91
|
+
inline void* aligned_allocate(std::size_t al, std::size_t sz)
|
|
92
|
+
{
|
|
93
|
+
return _aligned_malloc(sz, al);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
#else
|
|
97
|
+
|
|
98
|
+
inline void* aligned_allocate(std::size_t al, std::size_t sz)
|
|
99
|
+
{
|
|
100
|
+
//Make room for a back pointer metadata
|
|
101
|
+
void* const mptr = malloc(sz + sizeof(void*) + al);
|
|
102
|
+
if (!mptr)
|
|
103
|
+
return 0;
|
|
104
|
+
|
|
105
|
+
//Now align the returned pointer (which will be aligned at least to sizeof(void*)
|
|
106
|
+
const std::size_t raw_addr = reinterpret_cast<std::size_t>(mptr);
|
|
107
|
+
const std::size_t offset = sizeof(void*);
|
|
108
|
+
void *const ptr = reinterpret_cast<void*>((raw_addr + offset + al - 1u) & ~(al - 1u));
|
|
109
|
+
|
|
110
|
+
// Store the original pointer just before the aligned address
|
|
111
|
+
void** const backpointer = reinterpret_cast<void**>(ptr) - 1;
|
|
112
|
+
*backpointer = mptr;
|
|
113
|
+
return ptr;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
#endif
|
|
117
|
+
|
|
118
|
+
#if defined(BOOST_CONTAINER_HAS_ALIGNED_ALLOC) || defined(BOOST_CONTAINER_HAS_POSIX_MEMALIGN)
|
|
119
|
+
|
|
120
|
+
inline void aligned_deallocate(void* ptr)
|
|
121
|
+
{
|
|
122
|
+
if (!ptr)
|
|
123
|
+
return;
|
|
124
|
+
free(ptr);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
#elif defined(BOOST_CONTAINER_HAS_ALIGNED_MALLOC)
|
|
128
|
+
|
|
129
|
+
inline void aligned_deallocate(void* ptr)
|
|
130
|
+
{
|
|
131
|
+
_aligned_free(ptr); //_aligned_free supports NULL ptr
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
#else
|
|
135
|
+
|
|
136
|
+
inline void aligned_deallocate(void* ptr)
|
|
137
|
+
{
|
|
138
|
+
// Obtain backpointer data and free it
|
|
139
|
+
void** storage = reinterpret_cast<void**>(ptr) - 1;
|
|
140
|
+
free(*storage);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
#endif//
|
|
144
|
+
|
|
145
|
+
} //namespace dtl {
|
|
146
|
+
} //namespace container {
|
|
147
|
+
} //namespace boost {
|
|
148
|
+
|
|
149
|
+
#endif //#ifndef BOOST_CONTAINER_DETAIL_ALIGNED_ALLOCATION_HPP
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include <boost/move/adl_move_swap.hpp>
|
|
23
23
|
#include <boost/move/utility_core.hpp>
|
|
24
24
|
#include <boost/container/detail/mpl.hpp>
|
|
25
|
+
#include <boost/assert.hpp>
|
|
25
26
|
|
|
26
27
|
namespace boost {
|
|
27
28
|
namespace container {
|
|
@@ -54,6 +55,40 @@ template<class AllocatorType>
|
|
|
54
55
|
inline void move_alloc(AllocatorType &l, AllocatorType &r, dtl::true_type)
|
|
55
56
|
{ l = ::boost::move(r); }
|
|
56
57
|
|
|
58
|
+
template<class SizeType, class LimitSizeType, bool = sizeof(SizeType)<= sizeof(LimitSizeType)>
|
|
59
|
+
struct limit_by_stored_size_type
|
|
60
|
+
{
|
|
61
|
+
static BOOST_CONTAINER_FORCEINLINE SizeType clamp(SizeType val)
|
|
62
|
+
{ return val; }
|
|
63
|
+
|
|
64
|
+
static BOOST_CONTAINER_FORCEINLINE void set(LimitSizeType &val, SizeType v)
|
|
65
|
+
{ val = v; }
|
|
66
|
+
|
|
67
|
+
template <class F>
|
|
68
|
+
BOOST_CONTAINER_FORCEINLINE static void call_if_overflows(SizeType, F)
|
|
69
|
+
{}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
template<class SizeType, class LimitSizeType>
|
|
73
|
+
struct limit_by_stored_size_type<SizeType, LimitSizeType, false>
|
|
74
|
+
{
|
|
75
|
+
static BOOST_CONTAINER_FORCEINLINE SizeType clamp(SizeType val)
|
|
76
|
+
{ return val <= LimitSizeType(-1) ? val : LimitSizeType(-1); }
|
|
77
|
+
|
|
78
|
+
static void set(LimitSizeType &dst, SizeType val)
|
|
79
|
+
{
|
|
80
|
+
BOOST_ASSERT(LimitSizeType(-1) >= val);
|
|
81
|
+
dst = static_cast<LimitSizeType>(val);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
template <class F>
|
|
85
|
+
BOOST_CONTAINER_FORCEINLINE static void call_if_overflows(SizeType v, F f)
|
|
86
|
+
{
|
|
87
|
+
if(LimitSizeType(-1) < v)
|
|
88
|
+
f();
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
57
92
|
} //namespace dtl {
|
|
58
93
|
} //namespace container {
|
|
59
94
|
} //namespace boost {
|
|
@@ -284,6 +284,7 @@ int boost_cont_malloc_check(void);
|
|
|
284
284
|
boost_cont_command_ret_t boost_cont_allocation_command
|
|
285
285
|
( allocation_type command
|
|
286
286
|
, size_t sizeof_object
|
|
287
|
+
, size_t alignof_object
|
|
287
288
|
, size_t limit_objects
|
|
288
289
|
, size_t preferred_objects
|
|
289
290
|
, size_t *received_objects
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
//
|
|
3
|
+
// (C) Copyright Ion Gaztanaga 2026. Distributed under the Boost
|
|
4
|
+
// Software License, Version 1.0. (See accompanying file
|
|
5
|
+
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
6
|
+
//
|
|
7
|
+
// See http://www.boost.org/libs/container for documentation.
|
|
8
|
+
//
|
|
9
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
10
|
+
#ifndef BOOST_CONTAINER_DETAIL_BIT_UTILITIES_HPP
|
|
11
|
+
#define BOOST_CONTAINER_DETAIL_BIT_UTILITIES_HPP
|
|
12
|
+
|
|
13
|
+
#ifndef BOOST_CONFIG_HPP
|
|
14
|
+
# include <boost/config.hpp>
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
|
18
|
+
# pragma once
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#include <boost/container/detail/config_begin.hpp>
|
|
22
|
+
#include <boost/container/detail/workaround.hpp>
|
|
23
|
+
#include <boost/assert.hpp>
|
|
24
|
+
#include <boost/cstdint.hpp>
|
|
25
|
+
|
|
26
|
+
//_BitScan{Forward,Reverse}[64] used by the bit helpers below. The 64-bit
|
|
27
|
+
//variants only exist on x64/ARM64; the 32-bit ones are also available on x86
|
|
28
|
+
//and ARM, where the 64-bit value is scanned as two 32-bit halves.
|
|
29
|
+
#if defined(BOOST_MSVC) && \
|
|
30
|
+
(defined(_M_X64) || defined(_M_ARM64) || defined(_M_IX86) || defined(_M_ARM))
|
|
31
|
+
# include <intrin.h>
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
namespace boost {
|
|
35
|
+
namespace container {
|
|
36
|
+
namespace dtl {
|
|
37
|
+
|
|
38
|
+
//! Count trailing zero bits of a 64-bit value.
|
|
39
|
+
//! Precondition: x != 0 (the result is undefined otherwise).
|
|
40
|
+
BOOST_CONTAINER_FORCEINLINE int unchecked_countr_zero(boost::uint64_t x)
|
|
41
|
+
{
|
|
42
|
+
#if defined(BOOST_MSVC) && (defined(_M_X64) || defined(_M_ARM64))
|
|
43
|
+
unsigned long r;
|
|
44
|
+
_BitScanForward64(&r, x);
|
|
45
|
+
return (int)r;
|
|
46
|
+
#elif defined(BOOST_GCC) || defined(BOOST_CLANG)
|
|
47
|
+
return (int)__builtin_ctzll(x);
|
|
48
|
+
#elif defined(BOOST_MSVC) && (defined(_M_IX86) || defined(_M_ARM))
|
|
49
|
+
//32-bit MSVC targets lack _BitScanForward64: scan the two 32-bit halves.
|
|
50
|
+
unsigned long r;
|
|
51
|
+
if (_BitScanForward(&r, (unsigned long)x))
|
|
52
|
+
return (int)r;
|
|
53
|
+
_BitScanForward(&r, (unsigned long)(x >> 32));
|
|
54
|
+
return (int)r + 32;
|
|
55
|
+
#else
|
|
56
|
+
//O(1) branchless fallback for compilers without intrinsics, using
|
|
57
|
+
//mod-37 perfect-hash table on 32-bit halves
|
|
58
|
+
//(avoids 64-bit multiplies, friendlier to exotic 32-bit-only targets)
|
|
59
|
+
static const unsigned char mod37[37] =
|
|
60
|
+
{ 32, 0, 1, 26, 2, 23, 27, 0, 3, 16, 24, 30, 28, 11, 0, 13, 4, 7, 17, 0
|
|
61
|
+
, 25, 22, 31, 15, 29, 10, 12, 6, 0, 21, 14, 9, 5, 20, 8, 19, 18 };
|
|
62
|
+
boost::uint32_t lo = (boost::uint32_t)x;
|
|
63
|
+
if (lo)
|
|
64
|
+
return mod37[((boost::uint32_t)(0u - lo) & lo) % 37u];
|
|
65
|
+
boost::uint32_t hi = (boost::uint32_t)(x >> 32);
|
|
66
|
+
return 32 + mod37[((boost::uint32_t)(0u - hi) & hi) % 37u];
|
|
67
|
+
#endif
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//! Count trailing one bits of a 64-bit value.
|
|
71
|
+
//! Precondition: x != (uint64_t)-1 (the result is undefined otherwise).
|
|
72
|
+
BOOST_CONTAINER_FORCEINLINE int unchecked_countr_one(boost::uint64_t x)
|
|
73
|
+
{
|
|
74
|
+
return unchecked_countr_zero(~x);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//! Count leading zero bits of a 64-bit value.
|
|
78
|
+
//! Precondition: x != 0 (the result is undefined otherwise).
|
|
79
|
+
BOOST_CONTAINER_FORCEINLINE int unchecked_countl_zero(boost::uint64_t x)
|
|
80
|
+
{
|
|
81
|
+
#if defined(BOOST_MSVC) && (defined(_M_X64) || defined(_M_ARM64))
|
|
82
|
+
unsigned long r;
|
|
83
|
+
_BitScanReverse64(&r, x);
|
|
84
|
+
return (int)(63 - r);
|
|
85
|
+
#elif defined(BOOST_GCC) || defined(BOOST_CLANG)
|
|
86
|
+
return (int)__builtin_clzll(x);
|
|
87
|
+
#elif defined(BOOST_MSVC) && (defined(_M_IX86) || defined(_M_ARM))
|
|
88
|
+
//32-bit MSVC targets lack _BitScanReverse64: scan the two 32-bit halves.
|
|
89
|
+
unsigned long r;
|
|
90
|
+
if (_BitScanReverse(&r, (unsigned long)(x >> 32)))
|
|
91
|
+
return 31 - (int)r;
|
|
92
|
+
_BitScanReverse(&r, (unsigned long)x);
|
|
93
|
+
return 63 - (int)r;
|
|
94
|
+
#else
|
|
95
|
+
//O(1) branchless fallback for compilers without intrinsics, using
|
|
96
|
+
//smear-right + mod-37 perfect-hash table on 32-bit halves
|
|
97
|
+
static const unsigned char mod37[37] =
|
|
98
|
+
{ 32, 31, 6, 30, 9, 5, 0, 29, 16, 8, 2, 4, 21, 0, 19, 28, 25, 15, 0, 7
|
|
99
|
+
, 10, 1, 17, 3, 22, 20, 26, 0, 11, 18, 23, 27, 12, 24, 13, 14, 0 };
|
|
100
|
+
boost::uint32_t hi = (boost::uint32_t)(x >> 32);
|
|
101
|
+
if (hi) {
|
|
102
|
+
hi |= hi >> 1; hi |= hi >> 2; hi |= hi >> 4; hi |= hi >> 8; hi |= hi >> 16;
|
|
103
|
+
return mod37[hi % 37u];
|
|
104
|
+
}
|
|
105
|
+
boost::uint32_t lo = (boost::uint32_t)x;
|
|
106
|
+
lo |= lo >> 1; lo |= lo >> 2; lo |= lo >> 4; lo |= lo >> 8; lo |= lo >> 16;
|
|
107
|
+
return 32 + mod37[lo % 37u];
|
|
108
|
+
#endif
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
//! Count the number of set bits of a 64-bit value.
|
|
112
|
+
BOOST_CONTAINER_FORCEINLINE int popcount(boost::uint64_t x)
|
|
113
|
+
{
|
|
114
|
+
#if defined(BOOST_GCC) || defined(BOOST_CLANG)
|
|
115
|
+
return (int)__builtin_popcountll(x);
|
|
116
|
+
#elif defined(BOOST_MSVC) && defined(_M_X64)
|
|
117
|
+
return (int)__popcnt64(x);
|
|
118
|
+
#else
|
|
119
|
+
//Portable SWAR population count.
|
|
120
|
+
x = x - ((x >> 1) & boost::uint64_t(0x5555555555555555));
|
|
121
|
+
x = (x & boost::uint64_t(0x3333333333333333)) + ((x >> 2) & boost::uint64_t(0x3333333333333333));
|
|
122
|
+
x = (x + (x >> 4)) & boost::uint64_t(0x0f0f0f0f0f0f0f0f);
|
|
123
|
+
return (int)((x * boost::uint64_t(0x0101010101010101)) >> 56);
|
|
124
|
+
#endif
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
} //namespace dtl {
|
|
128
|
+
} //namespace container {
|
|
129
|
+
} //namespace boost {
|
|
130
|
+
|
|
131
|
+
#include <boost/container/detail/config_end.hpp>
|
|
132
|
+
|
|
133
|
+
#endif //BOOST_CONTAINER_DETAIL_BIT_UTILITIES_HPP
|
|
@@ -32,12 +32,12 @@ class equal_to_value
|
|
|
32
32
|
const value_type &t_;
|
|
33
33
|
|
|
34
34
|
public:
|
|
35
|
-
|
|
35
|
+
BOOST_CONTAINER_FORCEINLINE explicit equal_to_value(const value_type &t)
|
|
36
36
|
: t_(t)
|
|
37
37
|
{}
|
|
38
38
|
|
|
39
39
|
template <class U>
|
|
40
|
-
|
|
40
|
+
BOOST_CONTAINER_FORCEINLINE bool operator()(const U &t)const
|
|
41
41
|
{
|
|
42
42
|
return t_ == t;
|
|
43
43
|
}
|
|
@@ -55,7 +55,7 @@ class equal_to_value_first
|
|
|
55
55
|
{}
|
|
56
56
|
|
|
57
57
|
template <class U>
|
|
58
|
-
|
|
58
|
+
BOOST_CONTAINER_FORCEINLINE bool operator()(const U &t)const
|
|
59
59
|
{
|
|
60
60
|
return t_ == t.first;
|
|
61
61
|
}
|
|
@@ -149,6 +149,21 @@ struct key_node_pred
|
|
|
149
149
|
};
|
|
150
150
|
|
|
151
151
|
|
|
152
|
+
template<class Pred>
|
|
153
|
+
class not_pred
|
|
154
|
+
{
|
|
155
|
+
BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS Pred m_p;
|
|
156
|
+
|
|
157
|
+
public:
|
|
158
|
+
BOOST_CONTAINER_FORCEINLINE explicit not_pred(const Pred &p)
|
|
159
|
+
: m_p(p)
|
|
160
|
+
{}
|
|
161
|
+
|
|
162
|
+
template <class U>
|
|
163
|
+
BOOST_CONTAINER_FORCEINLINE bool operator()(const U &u) const
|
|
164
|
+
{ return !m_p(u); }
|
|
165
|
+
};
|
|
166
|
+
|
|
152
167
|
} //namespace container {
|
|
153
168
|
} //namespace boost {
|
|
154
169
|
|
|
@@ -150,7 +150,7 @@ namespace dtl {
|
|
|
150
150
|
typedef Cont<U, typename void_or_portable_rebind_alloc<V, A, U>::type, P0, P1, P2, P3, P4, P5, P6, P7, P8> type;
|
|
151
151
|
};
|
|
152
152
|
|
|
153
|
-
#endif
|
|
153
|
+
#endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
154
154
|
|
|
155
155
|
//for small_vector,static_vector
|
|
156
156
|
|
|
@@ -535,11 +535,22 @@ inline typename dtl::disable_if_memtransfer_copy_constructible<I, F, F>::type
|
|
|
535
535
|
{
|
|
536
536
|
F back = r;
|
|
537
537
|
BOOST_CONTAINER_TRY{
|
|
538
|
+
//GCC's value-range analysis issues a spurious -Wmaybe-uninitialized here
|
|
539
|
+
//when this copy-construct loop is inlined into a fixed-capacity container's
|
|
540
|
+
//(e.g. static_vector) copy constructor after a near-end single-element
|
|
541
|
+
//insert: it cannot prove the just-built trailing slot is initialized.
|
|
542
|
+
#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
|
|
543
|
+
#pragma GCC diagnostic push
|
|
544
|
+
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
|
545
|
+
#endif
|
|
538
546
|
while (n) {
|
|
539
547
|
--n;
|
|
540
548
|
allocator_traits<Allocator>::construct(a, boost::movelib::iterator_to_raw_pointer(r), *f);
|
|
541
549
|
++f; ++r;
|
|
542
550
|
}
|
|
551
|
+
#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
|
|
552
|
+
#pragma GCC diagnostic pop
|
|
553
|
+
#endif
|
|
543
554
|
}
|
|
544
555
|
BOOST_CONTAINER_CATCH(...){
|
|
545
556
|
for (; back != r; ++back){
|
|
@@ -1619,7 +1630,7 @@ void expand_backward_forward_and_insert_alloc_move_backward
|
|
|
1619
1630
|
//Old values destroyed automatically with "old_values_destroyer"
|
|
1620
1631
|
//when "old_values_destroyer" goes out of scope unless the have trivial
|
|
1621
1632
|
//destructor after move.
|
|
1622
|
-
|
|
1633
|
+
BOOST_IF_CONSTEXPR(trivial_dctr_after_move)
|
|
1623
1634
|
old_values_destroyer.release();
|
|
1624
1635
|
}
|
|
1625
1636
|
//raw_before is so big that divides old_end
|
|
@@ -1649,7 +1660,7 @@ void expand_backward_forward_and_insert_alloc_move_backward
|
|
|
1649
1660
|
remaining_pos = ::boost::container::move_forward_overlapping(remaining_pos, old_finish, old_start);
|
|
1650
1661
|
(void)remaining_pos;
|
|
1651
1662
|
//Once moved, avoid calling the destructors if trivial after move
|
|
1652
|
-
|
|
1663
|
+
BOOST_IF_CONSTEXPR(!trivial_dctr_after_move) {
|
|
1653
1664
|
boost::container::destroy_alloc(a, remaining_pos, old_finish);
|
|
1654
1665
|
}
|
|
1655
1666
|
}
|
|
@@ -1720,7 +1731,7 @@ void expand_backward_forward_and_insert_alloc_move_backward
|
|
|
1720
1731
|
B const new_first(make_iterator_uadvance(next, new_1st_range));
|
|
1721
1732
|
B const p = ::boost::container::move_forward_overlapping(pos, old_finish, new_first);
|
|
1722
1733
|
(void)p;
|
|
1723
|
-
|
|
1734
|
+
BOOST_IF_CONSTEXPR(!trivial_dctr_after_move)
|
|
1724
1735
|
boost::container::destroy_alloc(a, p, old_finish);
|
|
1725
1736
|
}
|
|
1726
1737
|
}
|
|
@@ -1771,7 +1782,7 @@ void expand_backward_forward_and_insert_alloc_move_backward
|
|
|
1771
1782
|
//trivial_dctr_after_move is true
|
|
1772
1783
|
//Destroy remaining moved elements from old_end except if they
|
|
1773
1784
|
//have trivial destructor after being moved
|
|
1774
|
-
|
|
1785
|
+
BOOST_IF_CONSTEXPR(!trivial_dctr_after_move) {
|
|
1775
1786
|
boost::container::destroy_alloc(a, move_end, old_finish);
|
|
1776
1787
|
}
|
|
1777
1788
|
}
|
|
@@ -1922,7 +1933,7 @@ inline void expand_backward_forward_and_insert_alloc_move_forward
|
|
|
1922
1933
|
//Old values destroyed automatically with "old_values_destroyer"
|
|
1923
1934
|
//when "old_values_destroyer" goes out of scope unless the have trivial
|
|
1924
1935
|
//destructor after move.
|
|
1925
|
-
|
|
1936
|
+
BOOST_IF_CONSTEXPR(trivial_dctr_after_move)
|
|
1926
1937
|
old_values_destroyer.release();
|
|
1927
1938
|
}
|
|
1928
1939
|
//raw_before is so big that divides old_end
|
|
@@ -1948,7 +1959,7 @@ inline void expand_backward_forward_and_insert_alloc_move_forward
|
|
|
1948
1959
|
BOOST_ASSERT(old_start != old_finish);
|
|
1949
1960
|
boost::container::move_backward_overlapping(old_start, pre_pos_raw, old_finish);
|
|
1950
1961
|
old_values_destroyer.release();
|
|
1951
|
-
|
|
1962
|
+
BOOST_IF_CONSTEXPR(!trivial_dctr_after_move) {
|
|
1952
1963
|
boost::container::destroy_alloc(a, old_start, new_start);
|
|
1953
1964
|
}
|
|
1954
1965
|
}
|
|
@@ -1987,7 +1998,7 @@ inline void expand_backward_forward_and_insert_alloc_move_forward
|
|
|
1987
1998
|
//Destroy remaining moved elements from old_begin except if they
|
|
1988
1999
|
//have trivial destructor after being moved
|
|
1989
2000
|
old_values_destroyer.release();
|
|
1990
|
-
|
|
2001
|
+
BOOST_IF_CONSTEXPR(!trivial_dctr_after_move) {
|
|
1991
2002
|
boost::container::destroy_alloc(a, old_start, p);
|
|
1992
2003
|
}
|
|
1993
2004
|
}
|
|
@@ -2014,9 +2025,8 @@ inline void expand_backward_forward_and_insert_alloc_move_forward
|
|
|
2014
2025
|
insertion_proxy.copy_n_and_update(a, new_beg_pos, n);
|
|
2015
2026
|
B const p = ::boost::container::move_backward_overlapping(old_start, pos, new_beg_pos);
|
|
2016
2027
|
old_values_destroyer.release();
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
(void)p;
|
|
2028
|
+
(void)p;
|
|
2029
|
+
BOOST_IF_CONSTEXPR(!trivial_dctr_after_move) {
|
|
2020
2030
|
boost::container::destroy_alloc(a, old_start, p);
|
|
2021
2031
|
}
|
|
2022
2032
|
}
|