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
|
@@ -32,182 +32,237 @@
|
|
|
32
32
|
#include <boost/container/detail/variadic_templates_tools.hpp>
|
|
33
33
|
#endif
|
|
34
34
|
#include <boost/move/utility_core.hpp>
|
|
35
|
+
#include <boost/container/detail/is_constructible.hpp>
|
|
35
36
|
|
|
36
37
|
namespace boost { namespace container {
|
|
37
38
|
|
|
38
39
|
namespace dtl {
|
|
39
40
|
|
|
41
|
+
/////////////////////////////////////////////////////////////////////////
|
|
42
|
+
//
|
|
43
|
+
// is_constructible_with_allocator_prefix
|
|
44
|
+
// is_constructible_with_allocator_suffix
|
|
45
|
+
//
|
|
46
|
+
/////////////////////////////////////////////////////////////////////////
|
|
40
47
|
|
|
41
48
|
// Check if we can detect is_convertible using advanced SFINAE expressions
|
|
42
|
-
#if !defined(
|
|
43
|
-
|
|
44
|
-
//! Code inspired by Mathias Gaunard's is_convertible.cpp found in the Boost mailing list
|
|
45
|
-
//! http://boost.2283326.n4.nabble.com/type-traits-is-constructible-when-decltype-is-supported-td3575452.html
|
|
46
|
-
//! Thanks Mathias!
|
|
47
|
-
|
|
48
|
-
//With variadic templates, we need a single class to implement the trait
|
|
49
|
-
template<class T, class ...Args>
|
|
50
|
-
struct is_constructible
|
|
51
|
-
{
|
|
52
|
-
typedef char yes_type;
|
|
53
|
-
struct no_type
|
|
54
|
-
{ char padding[2]; };
|
|
55
|
-
|
|
56
|
-
template<std::size_t N>
|
|
57
|
-
struct dummy;
|
|
58
|
-
|
|
59
|
-
template<class X>
|
|
60
|
-
static decltype(X(boost::move_detail::declval<Args>()...), true_type()) test(int);
|
|
61
|
-
|
|
62
|
-
template<class X>
|
|
63
|
-
static no_type test(...);
|
|
64
|
-
|
|
65
|
-
BOOST_STATIC_CONSTEXPR bool value = sizeof(test<T>(0)) == sizeof(yes_type);
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
template <class T, class InnerAlloc, class ...Args>
|
|
69
|
-
struct is_constructible_with_allocator_prefix
|
|
70
|
-
: is_constructible<T, allocator_arg_t, InnerAlloc, Args...>
|
|
71
|
-
{};
|
|
72
|
-
|
|
73
|
-
#else // #if !defined(BOOST_NO_SFINAE_EXPR) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
74
|
-
|
|
75
|
-
//Without advanced SFINAE expressions, we can't use is_constructible
|
|
76
|
-
//so backup to constructible_with_allocator_xxx
|
|
77
|
-
|
|
78
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
49
|
+
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
79
50
|
|
|
80
51
|
template <class T, class InnerAlloc, class ...Args>
|
|
81
52
|
struct is_constructible_with_allocator_prefix
|
|
82
|
-
:
|
|
53
|
+
: boost::container::is_constructible<T, allocator_arg_t, InnerAlloc, Args...>
|
|
83
54
|
{};
|
|
84
55
|
|
|
85
56
|
template <class T, class InnerAlloc, class ...Args>
|
|
86
57
|
struct is_constructible_with_allocator_suffix
|
|
87
|
-
:
|
|
58
|
+
: boost::container::is_constructible<T, Args..., InnerAlloc>
|
|
88
59
|
{};
|
|
89
60
|
|
|
90
|
-
|
|
61
|
+
#else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
91
62
|
|
|
92
|
-
template
|
|
93
|
-
struct is_constructible_with_allocator_prefix
|
|
94
|
-
: constructible_with_allocator_prefix<T>
|
|
95
|
-
{};
|
|
63
|
+
template<class T, class InnerAlloc, BOOST_MOVE_CLASSDFLT9, class = void>
|
|
64
|
+
struct is_constructible_with_allocator_prefix;
|
|
96
65
|
|
|
97
|
-
template
|
|
98
|
-
struct is_constructible_with_allocator_suffix
|
|
99
|
-
: constructible_with_allocator_suffix<T>
|
|
100
|
-
{};
|
|
66
|
+
template<class T, class InnerAlloc, BOOST_MOVE_CLASSDFLT9, class = void>
|
|
67
|
+
struct is_constructible_with_allocator_suffix;
|
|
101
68
|
|
|
102
|
-
#
|
|
69
|
+
#define BOOST_INTRUSIVE_IS_CONSTRUCTIBLE_WITH_ALLOCATOR(N) \
|
|
70
|
+
template <typename T, class InnerAlloc BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
|
|
71
|
+
struct is_constructible_with_allocator_prefix\
|
|
72
|
+
<T, InnerAlloc BOOST_MOVE_I##N BOOST_MOVE_TARG##N>\
|
|
73
|
+
: boost::container::is_constructible<T, allocator_arg_t, InnerAlloc BOOST_MOVE_I##N BOOST_MOVE_TARG##N>\
|
|
74
|
+
{};\
|
|
75
|
+
\
|
|
76
|
+
template <typename T, class InnerAlloc BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
|
|
77
|
+
struct is_constructible_with_allocator_suffix\
|
|
78
|
+
<T, InnerAlloc BOOST_MOVE_I##N BOOST_MOVE_TARG##N>\
|
|
79
|
+
: boost::container::is_constructible<T BOOST_MOVE_I##N BOOST_MOVE_TARG##N, InnerAlloc>\
|
|
80
|
+
{};\
|
|
81
|
+
//
|
|
82
|
+
BOOST_MOVE_ITERATE_0TO8(BOOST_INTRUSIVE_IS_CONSTRUCTIBLE_WITH_ALLOCATOR)
|
|
83
|
+
#undef BOOST_INTRUSIVE_IS_CONSTRUCTIBLE_WITH_ALLOCATOR
|
|
103
84
|
|
|
104
|
-
#endif //
|
|
85
|
+
#endif //if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
105
86
|
|
|
106
87
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
107
88
|
|
|
89
|
+
/////////////////////////////////////////////////////////////////////////
|
|
90
|
+
//
|
|
91
|
+
// dispatch_uses_allocator (NOT pair, NO uses-allocator)
|
|
92
|
+
//
|
|
93
|
+
/////////////////////////////////////////////////////////////////////////
|
|
108
94
|
template < typename ConstructAlloc
|
|
109
|
-
, typename
|
|
95
|
+
, typename AllocArg
|
|
110
96
|
, typename T
|
|
111
97
|
, class ...Args
|
|
112
98
|
>
|
|
113
99
|
inline typename dtl::enable_if_and
|
|
114
100
|
< void
|
|
115
101
|
, dtl::is_not_pair<T>
|
|
116
|
-
, dtl::not_< uses_allocator<T, typename remove_cvref<
|
|
102
|
+
, dtl::not_< uses_allocator<T, typename remove_cvref<AllocArg>::type > >
|
|
117
103
|
>::type dispatch_uses_allocator
|
|
118
|
-
( ConstructAlloc & construct_alloc, BOOST_FWD_REF(
|
|
104
|
+
( ConstructAlloc & construct_alloc, BOOST_FWD_REF(AllocArg), T* p, BOOST_FWD_REF(Args)...args)
|
|
119
105
|
{
|
|
120
|
-
(void)arg_alloc;
|
|
121
106
|
allocator_traits<ConstructAlloc>::construct(construct_alloc, p, ::boost::forward<Args>(args)...);
|
|
122
107
|
}
|
|
123
108
|
|
|
124
|
-
|
|
109
|
+
/////////////////////////////////////////////////////////////////////////
|
|
110
|
+
//
|
|
111
|
+
// dispatch_uses_allocator (NOT pair, uses-allocator, prefix)
|
|
112
|
+
//
|
|
113
|
+
/////////////////////////////////////////////////////////////////////////
|
|
125
114
|
template < typename ConstructAlloc
|
|
126
|
-
, typename
|
|
115
|
+
, typename AllocArg
|
|
127
116
|
, typename T
|
|
128
117
|
, class ...Args
|
|
129
118
|
>
|
|
130
119
|
inline typename dtl::enable_if_and
|
|
131
120
|
< void
|
|
132
121
|
, dtl::is_not_pair<T>
|
|
133
|
-
, uses_allocator<T, typename remove_cvref<
|
|
134
|
-
, is_constructible_with_allocator_prefix<T,
|
|
122
|
+
, uses_allocator<T, typename remove_cvref<AllocArg>::type>
|
|
123
|
+
, is_constructible_with_allocator_prefix<T, AllocArg, Args...>
|
|
135
124
|
>::type dispatch_uses_allocator
|
|
136
|
-
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(
|
|
125
|
+
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, T* p, BOOST_FWD_REF(Args) ...args)
|
|
137
126
|
{
|
|
138
127
|
allocator_traits<ConstructAlloc>::construct
|
|
139
128
|
( construct_alloc, p, allocator_arg
|
|
140
|
-
, ::boost::forward<
|
|
129
|
+
, ::boost::forward<AllocArg>(arg_alloc), ::boost::forward<Args>(args)...);
|
|
141
130
|
}
|
|
142
131
|
|
|
143
|
-
|
|
132
|
+
/////////////////////////////////////////////////////////////////////////
|
|
133
|
+
//
|
|
134
|
+
// dispatch_uses_allocator (NOT pair, uses-allocator, suffix)
|
|
135
|
+
//
|
|
136
|
+
/////////////////////////////////////////////////////////////////////////
|
|
144
137
|
template < typename ConstructAlloc
|
|
145
|
-
, typename
|
|
138
|
+
, typename AllocArg
|
|
146
139
|
, typename T
|
|
147
140
|
, class ...Args
|
|
148
141
|
>
|
|
149
142
|
inline typename dtl::enable_if_and
|
|
150
143
|
< void
|
|
151
144
|
, dtl::is_not_pair<T>
|
|
152
|
-
, uses_allocator<T, typename remove_cvref<
|
|
153
|
-
, dtl::not_<is_constructible_with_allocator_prefix<T,
|
|
145
|
+
, uses_allocator<T, typename remove_cvref<AllocArg>::type>
|
|
146
|
+
, dtl::not_<is_constructible_with_allocator_prefix<T, AllocArg, Args...> >
|
|
147
|
+
, is_constructible_with_allocator_suffix<T, AllocArg, Args...>
|
|
154
148
|
>::type dispatch_uses_allocator
|
|
155
|
-
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(
|
|
149
|
+
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, T* p, BOOST_FWD_REF(Args)...args)
|
|
156
150
|
{
|
|
157
151
|
allocator_traits<ConstructAlloc>::construct
|
|
158
|
-
(construct_alloc, p, ::boost::forward<Args>(args)
|
|
152
|
+
( construct_alloc, p, ::boost::forward<Args>(args)...
|
|
153
|
+
, ::boost::forward<AllocArg>(arg_alloc));
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/////////////////////////////////////////////////////////////////////////
|
|
157
|
+
//
|
|
158
|
+
// dispatch_uses_allocator (NOT pair, uses-allocator no viable constructor)
|
|
159
|
+
//
|
|
160
|
+
/////////////////////////////////////////////////////////////////////////
|
|
161
|
+
template < typename ConstructAlloc
|
|
162
|
+
, typename AllocArg
|
|
163
|
+
, typename T
|
|
164
|
+
, class ...Args
|
|
165
|
+
>
|
|
166
|
+
inline typename dtl::enable_if_and
|
|
167
|
+
< void
|
|
168
|
+
, dtl::is_not_pair<T>
|
|
169
|
+
, uses_allocator<T, typename remove_cvref<AllocArg>::type>
|
|
170
|
+
, dtl::not_<is_constructible_with_allocator_prefix<T, AllocArg, Args...> >
|
|
171
|
+
, dtl::not_<is_constructible_with_allocator_suffix<T, AllocArg, Args...> >
|
|
172
|
+
>::type dispatch_uses_allocator
|
|
173
|
+
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(AllocArg), T* p, BOOST_FWD_REF(Args)...args)
|
|
174
|
+
{
|
|
175
|
+
allocator_traits<ConstructAlloc>::construct(construct_alloc, p, ::boost::forward<Args>(args)...);
|
|
159
176
|
}
|
|
160
177
|
|
|
161
178
|
#else //#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
162
179
|
|
|
180
|
+
/////////////////////////////////////////////////////////////////////////
|
|
181
|
+
//
|
|
182
|
+
// dispatch_uses_allocator (NOT pair, NO uses-allocator)
|
|
183
|
+
//
|
|
184
|
+
/////////////////////////////////////////////////////////////////////////
|
|
163
185
|
#define BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE(N) \
|
|
164
|
-
template <typename ConstructAlloc, typename
|
|
186
|
+
template <typename ConstructAlloc, typename AllocArg, typename T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
|
|
165
187
|
inline typename dtl::enable_if_and\
|
|
166
188
|
< void\
|
|
167
189
|
, dtl::is_not_pair<T>\
|
|
168
|
-
, dtl::not_<uses_allocator<T, typename remove_cvref<
|
|
190
|
+
, dtl::not_<uses_allocator<T, typename remove_cvref<AllocArg>::type> >\
|
|
169
191
|
>::type\
|
|
170
192
|
dispatch_uses_allocator\
|
|
171
|
-
(ConstructAlloc &construct_alloc, BOOST_FWD_REF(
|
|
193
|
+
(ConstructAlloc &construct_alloc, BOOST_FWD_REF(AllocArg), T* p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
172
194
|
{\
|
|
173
|
-
(void)arg_alloc;\
|
|
174
195
|
allocator_traits<ConstructAlloc>::construct(construct_alloc, p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
175
196
|
}\
|
|
176
197
|
//
|
|
177
198
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE)
|
|
178
199
|
#undef BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE
|
|
179
200
|
|
|
201
|
+
/////////////////////////////////////////////////////////////////////////
|
|
202
|
+
//
|
|
203
|
+
// dispatch_uses_allocator (NOT pair, uses-allocator, prefix)
|
|
204
|
+
//
|
|
205
|
+
/////////////////////////////////////////////////////////////////////////
|
|
180
206
|
#define BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE(N) \
|
|
181
|
-
template < typename ConstructAlloc, typename
|
|
207
|
+
template < typename ConstructAlloc, typename AllocArg, typename T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
|
|
182
208
|
inline typename dtl::enable_if_and\
|
|
183
209
|
< void\
|
|
184
210
|
, dtl::is_not_pair<T>\
|
|
185
|
-
, uses_allocator<T, typename remove_cvref<
|
|
186
|
-
, is_constructible_with_allocator_prefix<T,
|
|
211
|
+
, uses_allocator<T, typename remove_cvref<AllocArg>::type>\
|
|
212
|
+
, is_constructible_with_allocator_prefix<T, AllocArg BOOST_MOVE_I##N BOOST_MOVE_TARG##N>\
|
|
187
213
|
>::type\
|
|
188
214
|
dispatch_uses_allocator\
|
|
189
|
-
(ConstructAlloc& construct_alloc, BOOST_FWD_REF(
|
|
215
|
+
(ConstructAlloc& construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, T* p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
190
216
|
{\
|
|
191
217
|
allocator_traits<ConstructAlloc>::construct\
|
|
192
|
-
(construct_alloc, p, allocator_arg, ::boost::forward<
|
|
218
|
+
(construct_alloc, p, allocator_arg, ::boost::forward<AllocArg>(arg_alloc) BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
193
219
|
}\
|
|
194
220
|
//
|
|
195
221
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE)
|
|
196
222
|
#undef BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE
|
|
197
223
|
|
|
224
|
+
/////////////////////////////////////////////////////////////////////////
|
|
225
|
+
//
|
|
226
|
+
// dispatch_uses_allocator (NOT pair, uses-allocator, suffix)
|
|
227
|
+
//
|
|
228
|
+
/////////////////////////////////////////////////////////////////////////
|
|
198
229
|
#define BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE(N) \
|
|
199
|
-
template < typename ConstructAlloc, typename
|
|
230
|
+
template < typename ConstructAlloc, typename AllocArg, typename T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
|
|
200
231
|
inline typename dtl::enable_if_and\
|
|
201
232
|
< void\
|
|
202
233
|
, dtl::is_not_pair<T>\
|
|
203
|
-
, uses_allocator<T, typename remove_cvref<
|
|
204
|
-
, dtl::not_<is_constructible_with_allocator_prefix<T,
|
|
234
|
+
, uses_allocator<T, typename remove_cvref<AllocArg>::type>\
|
|
235
|
+
, dtl::not_<is_constructible_with_allocator_prefix<T, AllocArg BOOST_MOVE_I##N BOOST_MOVE_TARG##N> >\
|
|
236
|
+
, is_constructible_with_allocator_suffix<T, AllocArg BOOST_MOVE_I##N BOOST_MOVE_TARG##N>\
|
|
205
237
|
>::type\
|
|
206
238
|
dispatch_uses_allocator\
|
|
207
|
-
(ConstructAlloc& construct_alloc, BOOST_FWD_REF(
|
|
239
|
+
(ConstructAlloc& construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, T* p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
208
240
|
{\
|
|
209
241
|
allocator_traits<ConstructAlloc>::construct\
|
|
210
|
-
(construct_alloc, p BOOST_MOVE_I##N BOOST_MOVE_FWD##N, ::boost::forward<
|
|
242
|
+
(construct_alloc, p BOOST_MOVE_I##N BOOST_MOVE_FWD##N, ::boost::forward<AllocArg>(arg_alloc));\
|
|
243
|
+
}\
|
|
244
|
+
//
|
|
245
|
+
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE)
|
|
246
|
+
#undef BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE
|
|
247
|
+
|
|
248
|
+
/////////////////////////////////////////////////////////////////////////
|
|
249
|
+
//
|
|
250
|
+
// dispatch_uses_allocator (NOT pair, uses-allocator no viable constructor)
|
|
251
|
+
//
|
|
252
|
+
/////////////////////////////////////////////////////////////////////////
|
|
253
|
+
#define BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE(N) \
|
|
254
|
+
template < typename ConstructAlloc, typename AllocArg, typename T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
|
|
255
|
+
inline typename dtl::enable_if_and\
|
|
256
|
+
< void\
|
|
257
|
+
, dtl::is_not_pair<T>\
|
|
258
|
+
, uses_allocator<T, typename remove_cvref<AllocArg>::type>\
|
|
259
|
+
, dtl::not_<is_constructible_with_allocator_prefix<T, AllocArg BOOST_MOVE_I##N BOOST_MOVE_TARG##N> >\
|
|
260
|
+
, dtl::not_<is_constructible_with_allocator_suffix<T, AllocArg BOOST_MOVE_I##N BOOST_MOVE_TARG##N> >\
|
|
261
|
+
>::type\
|
|
262
|
+
dispatch_uses_allocator\
|
|
263
|
+
(ConstructAlloc& construct_alloc, BOOST_FWD_REF(AllocArg), T* p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
264
|
+
{\
|
|
265
|
+
allocator_traits<ConstructAlloc>::construct(construct_alloc, p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
211
266
|
}\
|
|
212
267
|
//
|
|
213
268
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE)
|
|
@@ -216,13 +271,13 @@ BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR
|
|
|
216
271
|
#endif //#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
217
272
|
|
|
218
273
|
template < typename ConstructAlloc
|
|
219
|
-
, typename
|
|
274
|
+
, typename AllocArg
|
|
220
275
|
, typename Pair
|
|
221
276
|
> inline
|
|
222
277
|
BOOST_CONTAINER_DOC1ST(void, typename dtl::enable_if<dtl::is_pair<Pair> BOOST_MOVE_I void >::type)
|
|
223
278
|
dispatch_uses_allocator
|
|
224
279
|
( ConstructAlloc & construct_alloc
|
|
225
|
-
, BOOST_FWD_REF(
|
|
280
|
+
, BOOST_FWD_REF(AllocArg) arg_alloc
|
|
226
281
|
, Pair* p)
|
|
227
282
|
{
|
|
228
283
|
dispatch_uses_allocator(construct_alloc, arg_alloc, dtl::addressof(p->first));
|
|
@@ -238,12 +293,12 @@ BOOST_CONTAINER_DOC1ST(void, typename dtl::enable_if<dtl::is_pair<Pair> BOOST_MO
|
|
|
238
293
|
|
|
239
294
|
|
|
240
295
|
template < typename ConstructAlloc
|
|
241
|
-
, typename
|
|
296
|
+
, typename AllocArg
|
|
242
297
|
, class Pair, class U, class V>
|
|
243
298
|
BOOST_CONTAINER_DOC1ST(void, typename dtl::enable_if<dtl::is_pair<Pair> BOOST_MOVE_I void>::type)
|
|
244
299
|
dispatch_uses_allocator
|
|
245
300
|
( ConstructAlloc & construct_alloc
|
|
246
|
-
, BOOST_FWD_REF(
|
|
301
|
+
, BOOST_FWD_REF(AllocArg) arg_alloc
|
|
247
302
|
, Pair* p, BOOST_FWD_REF(U) x, BOOST_FWD_REF(V) y)
|
|
248
303
|
{
|
|
249
304
|
dispatch_uses_allocator(construct_alloc, arg_alloc, dtl::addressof(p->first), ::boost::forward<U>(x));
|
|
@@ -258,17 +313,17 @@ BOOST_CONTAINER_DOC1ST(void, typename dtl::enable_if<dtl::is_pair<Pair> BOOST_MO
|
|
|
258
313
|
}
|
|
259
314
|
|
|
260
315
|
template < typename ConstructAlloc
|
|
261
|
-
, typename
|
|
316
|
+
, typename AllocArg
|
|
262
317
|
, class Pair, class Pair2>
|
|
263
318
|
BOOST_CONTAINER_DOC1ST(void, typename dtl::enable_if< dtl::is_pair<Pair> BOOST_MOVE_I void >::type)
|
|
264
319
|
dispatch_uses_allocator
|
|
265
320
|
(ConstructAlloc & construct_alloc
|
|
266
|
-
, BOOST_FWD_REF(
|
|
321
|
+
, BOOST_FWD_REF(AllocArg) arg_alloc
|
|
267
322
|
, Pair* p, Pair2& x)
|
|
268
323
|
{ dispatch_uses_allocator(construct_alloc, arg_alloc, p, x.first, x.second); }
|
|
269
324
|
|
|
270
325
|
template < typename ConstructAlloc
|
|
271
|
-
, typename
|
|
326
|
+
, typename AllocArg
|
|
272
327
|
, class Pair, class Pair2>
|
|
273
328
|
typename dtl::enable_if_and
|
|
274
329
|
< void
|
|
@@ -276,18 +331,18 @@ typename dtl::enable_if_and
|
|
|
276
331
|
, dtl::not_<boost::move_detail::is_reference<Pair2> > >::type //This is needed for MSVC10 and ambiguous overloads
|
|
277
332
|
dispatch_uses_allocator
|
|
278
333
|
(ConstructAlloc & construct_alloc
|
|
279
|
-
, BOOST_FWD_REF(
|
|
334
|
+
, BOOST_FWD_REF(AllocArg) arg_alloc
|
|
280
335
|
, Pair* p, BOOST_RV_REF_BEG Pair2 BOOST_RV_REF_END x)
|
|
281
336
|
{ dispatch_uses_allocator(construct_alloc, arg_alloc, p, ::boost::move(x.first), ::boost::move(x.second)); }
|
|
282
337
|
|
|
283
338
|
|
|
284
339
|
//piecewise construction from boost::tuple
|
|
285
340
|
#define BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_BOOST_TUPLE_CODE(N,M)\
|
|
286
|
-
template< typename ConstructAlloc, typename
|
|
341
|
+
template< typename ConstructAlloc, typename AllocArg, class Pair \
|
|
287
342
|
, template<class, class, class, class, class, class, class, class, class, class> class BoostTuple \
|
|
288
343
|
BOOST_MOVE_I_IF(BOOST_MOVE_OR(N,M)) BOOST_MOVE_CLASS##N BOOST_MOVE_I_IF(BOOST_MOVE_AND(N,M)) BOOST_MOVE_CLASSQ##M > \
|
|
289
344
|
typename dtl::enable_if< dtl::is_pair<Pair> BOOST_MOVE_I void>::type\
|
|
290
|
-
dispatch_uses_allocator( ConstructAlloc & construct_alloc, BOOST_FWD_REF(
|
|
345
|
+
dispatch_uses_allocator( ConstructAlloc & construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, Pair* pair, piecewise_construct_t\
|
|
291
346
|
, BoostTuple<BOOST_MOVE_TARG##N BOOST_MOVE_I##N BOOST_MOVE_REPEAT(BOOST_MOVE_SUB(10,N),::boost::tuples::null_type)> p\
|
|
292
347
|
, BoostTuple<BOOST_MOVE_TARGQ##M BOOST_MOVE_I##M BOOST_MOVE_REPEAT(BOOST_MOVE_SUB(10,M),::boost::tuples::null_type)> q)\
|
|
293
348
|
{\
|
|
@@ -311,9 +366,9 @@ BOOST_MOVE_ITER2D_0TOMAX(9, BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_BO
|
|
|
311
366
|
//piecewise construction from Std Tuple
|
|
312
367
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
313
368
|
|
|
314
|
-
template< typename ConstructAlloc, typename
|
|
369
|
+
template< typename ConstructAlloc, typename AllocArg, class Pair
|
|
315
370
|
, template<class ...> class Tuple, class... Args1, class... Args2, size_t... Indexes1, size_t... Indexes2>
|
|
316
|
-
void dispatch_uses_allocator_index( ConstructAlloc & construct_alloc, BOOST_FWD_REF(
|
|
371
|
+
void dispatch_uses_allocator_index( ConstructAlloc & construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, Pair* pair
|
|
317
372
|
, Tuple<Args1...>& t1, Tuple<Args2...>& t2, index_tuple<Indexes1...>, index_tuple<Indexes2...>)
|
|
318
373
|
{
|
|
319
374
|
(void)t1; (void)t2;
|
|
@@ -328,10 +383,10 @@ BOOST_MOVE_ITER2D_0TOMAX(9, BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_BO
|
|
|
328
383
|
BOOST_CONTAINER_CATCH_END
|
|
329
384
|
}
|
|
330
385
|
|
|
331
|
-
template< typename ConstructAlloc, typename
|
|
386
|
+
template< typename ConstructAlloc, typename AllocArg, class Pair
|
|
332
387
|
, template<class ...> class Tuple, class... Args1, class... Args2>
|
|
333
388
|
typename dtl::enable_if< dtl::is_pair<Pair>, void >::type
|
|
334
|
-
dispatch_uses_allocator( ConstructAlloc & construct_alloc, BOOST_FWD_REF(
|
|
389
|
+
dispatch_uses_allocator( ConstructAlloc & construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, Pair* pair, piecewise_construct_t
|
|
335
390
|
, Tuple<Args1...> t1, Tuple<Args2...> t2)
|
|
336
391
|
{
|
|
337
392
|
(dispatch_uses_allocator_index)( construct_alloc, arg_alloc, pair, t1, t2
|
|
@@ -343,11 +398,11 @@ BOOST_MOVE_ITER2D_0TOMAX(9, BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_BO
|
|
|
343
398
|
|
|
344
399
|
//MSVC 2010 tuple implementation
|
|
345
400
|
#define BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_MSVC2010_TUPLE_CODE(N,M)\
|
|
346
|
-
template< typename ConstructAlloc, typename
|
|
401
|
+
template< typename ConstructAlloc, typename AllocArg, class Pair\
|
|
347
402
|
, template<class, class, class, class, class, class, class, class, class, class> class StdTuple\
|
|
348
403
|
BOOST_MOVE_I_IF(BOOST_MOVE_OR(N,M)) BOOST_MOVE_CLASS##N BOOST_MOVE_I_IF(BOOST_MOVE_AND(N,M)) BOOST_MOVE_CLASSQ##M > \
|
|
349
404
|
typename dtl::enable_if< dtl::is_pair<Pair> BOOST_MOVE_I void>::type\
|
|
350
|
-
dispatch_uses_allocator(ConstructAlloc & construct_alloc, BOOST_FWD_REF(
|
|
405
|
+
dispatch_uses_allocator(ConstructAlloc & construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, Pair* pair, piecewise_construct_t\
|
|
351
406
|
, StdTuple<BOOST_MOVE_TARG##N BOOST_MOVE_I##N BOOST_MOVE_REPEAT(BOOST_MOVE_SUB(10,N),::std::tr1::_Nil)> p\
|
|
352
407
|
, StdTuple<BOOST_MOVE_TARGQ##M BOOST_MOVE_I##M BOOST_MOVE_REPEAT(BOOST_MOVE_SUB(10,M),::std::tr1::_Nil)> q)\
|
|
353
408
|
{\
|
|
@@ -377,12 +432,12 @@ BOOST_MOVE_ITER2D_0TOMAX(9, BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_BO
|
|
|
377
432
|
|
|
378
433
|
//MSVC 2012 tuple implementation
|
|
379
434
|
#define BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_MSVC2012_TUPLE_CODE(N,M)\
|
|
380
|
-
template< typename ConstructAlloc, typename
|
|
435
|
+
template< typename ConstructAlloc, typename AllocArg, class Pair\
|
|
381
436
|
, template<BOOST_MOVE_REPEAT(_VARIADIC_MAX, class), class, class, class> class StdTuple \
|
|
382
437
|
BOOST_MOVE_I_IF(BOOST_MOVE_OR(N,M)) BOOST_MOVE_CLASS##N BOOST_MOVE_I_IF(BOOST_MOVE_AND(N,M)) BOOST_MOVE_CLASSQ##M > \
|
|
383
438
|
typename dtl::enable_if< dtl::is_pair<Pair> BOOST_MOVE_I void>::type\
|
|
384
439
|
dispatch_uses_allocator\
|
|
385
|
-
( ConstructAlloc & construct_alloc, BOOST_FWD_REF(
|
|
440
|
+
( ConstructAlloc & construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, Pair* pair, piecewise_construct_t\
|
|
386
441
|
, StdTuple<BOOST_MOVE_TARG##N BOOST_MOVE_I##N BOOST_MOVE_REPEAT(BOOST_MOVE_SUB(BOOST_MOVE_ADD(_VARIADIC_MAX, 3),N),::std::_Nil) > p\
|
|
387
442
|
, StdTuple<BOOST_MOVE_TARGQ##M BOOST_MOVE_I##M BOOST_MOVE_REPEAT(BOOST_MOVE_SUB(BOOST_MOVE_ADD(_VARIADIC_MAX, 3),M),::std::_Nil) > q)\
|
|
388
443
|
{\
|
|
@@ -404,16 +459,28 @@ BOOST_MOVE_ITER2D_0TOMAX(9, BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_BO
|
|
|
404
459
|
#undef BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_MSVC2010_TUPLE_CODE
|
|
405
460
|
#undef BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_MSVC2012_TUPLE_MAX_IT
|
|
406
461
|
|
|
407
|
-
#endif
|
|
462
|
+
#endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
463
|
+
|
|
464
|
+
template<class T>
|
|
465
|
+
struct uses_allocator_destroy
|
|
466
|
+
{
|
|
467
|
+
T &t_;
|
|
468
|
+
uses_allocator_destroy(T&t)
|
|
469
|
+
: t_(t)
|
|
470
|
+
{}
|
|
471
|
+
|
|
472
|
+
~uses_allocator_destroy()
|
|
473
|
+
{ t_.~T(); }
|
|
474
|
+
};
|
|
408
475
|
|
|
409
476
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
410
477
|
|
|
411
478
|
template < typename ConstructAlloc
|
|
412
|
-
, typename
|
|
479
|
+
, typename AllocArg
|
|
413
480
|
, class Pair, class KeyType, class ... Args>
|
|
414
481
|
typename dtl::enable_if< dtl::is_pair<Pair>, void >::type
|
|
415
482
|
dispatch_uses_allocator
|
|
416
|
-
(ConstructAlloc & construct_alloc, BOOST_FWD_REF(
|
|
483
|
+
(ConstructAlloc & construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, Pair* p, try_emplace_t, BOOST_FWD_REF(KeyType) k, BOOST_FWD_REF(Args) ...args)
|
|
417
484
|
{
|
|
418
485
|
dispatch_uses_allocator(construct_alloc, arg_alloc, dtl::addressof(p->first), ::boost::forward<KeyType>(k));
|
|
419
486
|
BOOST_CONTAINER_TRY{
|
|
@@ -426,14 +493,28 @@ typename dtl::enable_if< dtl::is_pair<Pair>, void >::type
|
|
|
426
493
|
BOOST_CONTAINER_CATCH_END
|
|
427
494
|
}
|
|
428
495
|
|
|
496
|
+
template <typename T, typename AllocArg, class ...Args>
|
|
497
|
+
inline T construct_dispatch_uses_allocator
|
|
498
|
+
(BOOST_FWD_REF(AllocArg) arg_alloc, BOOST_FWD_REF(Args)...args)
|
|
499
|
+
{
|
|
500
|
+
typename dtl::aligned_storage<sizeof(T), alignment_of<T>::value>::type storage;
|
|
501
|
+
T * const addr = reinterpret_cast<T*>(&storage);
|
|
502
|
+
|
|
503
|
+
boost::container::dtl::allocator_traits_dummy<T> atd;
|
|
504
|
+
(dispatch_uses_allocator)
|
|
505
|
+
(atd, boost::forward<AllocArg>(arg_alloc), addr, boost::forward<Args>(args)...);
|
|
506
|
+
uses_allocator_destroy<T> d(*addr);
|
|
507
|
+
return d.t_;
|
|
508
|
+
}
|
|
509
|
+
|
|
429
510
|
#else
|
|
430
511
|
|
|
431
512
|
#define BOOST_CONTAINER_DISPATCH_USES_ALLOCATOR_PAIR_TRY_EMPLACE_CODE(N) \
|
|
432
|
-
template <typename ConstructAlloc, typename
|
|
513
|
+
template <typename ConstructAlloc, typename AllocArg, class Pair, class KeyType BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
|
|
433
514
|
inline typename dtl::enable_if\
|
|
434
515
|
< dtl::is_pair<Pair> BOOST_MOVE_I void >::type\
|
|
435
516
|
dispatch_uses_allocator\
|
|
436
|
-
(ConstructAlloc &construct_alloc, BOOST_FWD_REF(
|
|
517
|
+
(ConstructAlloc &construct_alloc, BOOST_FWD_REF(AllocArg) arg_alloc, Pair* p, try_emplace_t, \
|
|
437
518
|
BOOST_FWD_REF(KeyType) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
438
519
|
{\
|
|
439
520
|
dispatch_uses_allocator(construct_alloc, arg_alloc, dtl::addressof(p->first), ::boost::forward<KeyType>(k));\
|
|
@@ -450,7 +531,24 @@ typename dtl::enable_if< dtl::is_pair<Pair>, void >::type
|
|
|
450
531
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DISPATCH_USES_ALLOCATOR_PAIR_TRY_EMPLACE_CODE)
|
|
451
532
|
#undef BOOST_CONTAINER_DISPATCH_USES_ALLOCATOR_PAIR_TRY_EMPLACE_CODE
|
|
452
533
|
|
|
453
|
-
#
|
|
534
|
+
#define BOOST_CONTAINER_CONSTRUCT_DISPATCH_USES_ALLOCATOR_CODE(N) \
|
|
535
|
+
template <class T, class AllocArg BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
|
|
536
|
+
inline T construct_dispatch_uses_allocator\
|
|
537
|
+
(BOOST_FWD_REF(AllocArg) arg_alloc BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
538
|
+
{\
|
|
539
|
+
typename dtl::aligned_storage<sizeof(T), alignment_of<T>::value>::type storage;\
|
|
540
|
+
T * const addr = reinterpret_cast<T*>(&storage);\
|
|
541
|
+
boost::container::dtl::allocator_traits_dummy<T> atd;\
|
|
542
|
+
(dispatch_uses_allocator)\
|
|
543
|
+
(atd, boost::forward<AllocArg>(arg_alloc), addr BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
544
|
+
uses_allocator_destroy<T> d(*addr);\
|
|
545
|
+
return d.t_;\
|
|
546
|
+
}\
|
|
547
|
+
//
|
|
548
|
+
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_CONSTRUCT_DISPATCH_USES_ALLOCATOR_CODE)
|
|
549
|
+
#undef BOOST_CONTAINER_CONSTRUCT_DISPATCH_USES_ALLOCATOR_CODE
|
|
550
|
+
|
|
551
|
+
#endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
454
552
|
|
|
455
553
|
} //namespace dtl
|
|
456
554
|
|
|
@@ -74,10 +74,11 @@ BOOST_CONTAINER_DECL int dlmalloc_malloc_check();
|
|
|
74
74
|
|
|
75
75
|
BOOST_CONTAINER_DECL boost_cont_command_ret_t dlmalloc_allocation_command
|
|
76
76
|
( allocation_type command
|
|
77
|
-
, size_t
|
|
78
|
-
, size_t
|
|
79
|
-
, size_t
|
|
80
|
-
, size_t
|
|
77
|
+
, size_t sizeof_bytes
|
|
78
|
+
, size_t alignof_bytes
|
|
79
|
+
, size_t limit_bytess
|
|
80
|
+
, size_t preferred_bytess
|
|
81
|
+
, size_t *received_bytess
|
|
81
82
|
, void *reuse_ptr
|
|
82
83
|
);
|
|
83
84
|
|