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
|
@@ -150,25 +150,30 @@ class adaptive_pool
|
|
|
150
150
|
|
|
151
151
|
//!Returns the number of elements that could be allocated.
|
|
152
152
|
//!Never throws
|
|
153
|
+
BOOST_CONTAINER_NODISCARD
|
|
153
154
|
size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
154
155
|
{ return size_type(-1)/(2u*sizeof(T)); }
|
|
155
156
|
|
|
156
157
|
//!Allocate memory for an array of count elements.
|
|
157
158
|
//!Throws bad_alloc if there is no enough memory
|
|
158
|
-
|
|
159
|
+
BOOST_CONTAINER_NODISCARD
|
|
160
|
+
pointer allocate(size_type count)
|
|
159
161
|
{
|
|
160
|
-
if(BOOST_UNLIKELY(count >
|
|
162
|
+
if(BOOST_UNLIKELY(count > this->max_size()))
|
|
161
163
|
boost::container::throw_bad_alloc();
|
|
162
164
|
|
|
163
|
-
|
|
165
|
+
BOOST_IF_CONSTEXPR(Version == 1)
|
|
166
|
+
if(count == 1){
|
|
164
167
|
typedef typename dtl::shared_adaptive_node_pool
|
|
165
|
-
<sizeof(T), NodesPerBlock, MaxFreeBlocks
|
|
168
|
+
< sizeof(T), NodesPerBlock, MaxFreeBlocks
|
|
169
|
+
, OverheadPercent, dtl::alignment_of<T>::value> shared_pool_t;
|
|
166
170
|
typedef dtl::singleton_default<shared_pool_t> singleton_t;
|
|
167
171
|
return pointer(static_cast<T*>(singleton_t::instance().allocate_node()));
|
|
168
172
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
173
|
+
void *ret = dlmalloc_memalign(count*sizeof(T), dtl::alignment_of<T>::value);
|
|
174
|
+
if(BOOST_UNLIKELY(!ret))
|
|
175
|
+
boost::container::throw_bad_alloc();
|
|
176
|
+
return static_cast<pointer>(ret);
|
|
172
177
|
}
|
|
173
178
|
|
|
174
179
|
//!Deallocate allocated memory.
|
|
@@ -176,22 +181,22 @@ class adaptive_pool
|
|
|
176
181
|
void deallocate(const pointer &ptr, size_type count) BOOST_NOEXCEPT_OR_NOTHROW
|
|
177
182
|
{
|
|
178
183
|
(void)count;
|
|
179
|
-
|
|
184
|
+
BOOST_IF_CONSTEXPR(Version == 1)
|
|
185
|
+
if(count == 1){
|
|
180
186
|
typedef dtl::shared_adaptive_node_pool
|
|
181
|
-
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent> shared_pool_t;
|
|
187
|
+
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent, dtl::alignment_of<T>::value> shared_pool_t;
|
|
182
188
|
typedef dtl::singleton_default<shared_pool_t> singleton_t;
|
|
183
189
|
singleton_t::instance().deallocate_node(ptr);
|
|
190
|
+
return;
|
|
184
191
|
}
|
|
185
|
-
|
|
186
|
-
dlmalloc_free(ptr);
|
|
187
|
-
}
|
|
192
|
+
dlmalloc_free(ptr);
|
|
188
193
|
}
|
|
189
194
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
pointer &reuse)
|
|
195
|
+
BOOST_CONTAINER_NODISCARD
|
|
196
|
+
pointer allocation_command
|
|
197
|
+
(allocation_type command, size_type limit_size, size_type &prefer_in_recvd_out_size, pointer &reuse)
|
|
194
198
|
{
|
|
199
|
+
BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 ));
|
|
195
200
|
pointer ret = this->priv_allocation_command(command, limit_size, prefer_in_recvd_out_size, reuse);
|
|
196
201
|
if(BOOST_UNLIKELY(!ret && !(command & BOOST_CONTAINER_NOTHROW_ALLOCATION)))
|
|
197
202
|
boost::container::throw_bad_alloc();
|
|
@@ -200,16 +205,21 @@ class adaptive_pool
|
|
|
200
205
|
|
|
201
206
|
//!Returns maximum the number of objects the previously allocated memory
|
|
202
207
|
//!pointed by p can hold.
|
|
208
|
+
BOOST_CONTAINER_NODISCARD
|
|
203
209
|
size_type size(pointer p) const BOOST_NOEXCEPT_OR_NOTHROW
|
|
204
|
-
{
|
|
210
|
+
{
|
|
211
|
+
BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 ));
|
|
212
|
+
return dlmalloc_size(p);
|
|
213
|
+
}
|
|
205
214
|
|
|
206
215
|
//!Allocates just one object. Memory allocated with this function
|
|
207
216
|
//!must be deallocated only with deallocate_one().
|
|
208
217
|
//!Throws bad_alloc if there is no enough memory
|
|
218
|
+
BOOST_CONTAINER_NODISCARD
|
|
209
219
|
pointer allocate_one()
|
|
210
220
|
{
|
|
211
221
|
typedef dtl::shared_adaptive_node_pool
|
|
212
|
-
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent> shared_pool_t;
|
|
222
|
+
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent, dtl::alignment_of<T>::value> shared_pool_t;
|
|
213
223
|
typedef dtl::singleton_default<shared_pool_t> singleton_t;
|
|
214
224
|
return (pointer)singleton_t::instance().allocate_node();
|
|
215
225
|
}
|
|
@@ -218,8 +228,9 @@ class adaptive_pool
|
|
|
218
228
|
//!Elements must be individually deallocated with deallocate_one()
|
|
219
229
|
void allocate_individual(std::size_t num_elements, multiallocation_chain &chain)
|
|
220
230
|
{
|
|
231
|
+
BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 ));
|
|
221
232
|
typedef dtl::shared_adaptive_node_pool
|
|
222
|
-
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent> shared_pool_t;
|
|
233
|
+
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent, dtl::alignment_of<T>::value> shared_pool_t;
|
|
223
234
|
typedef dtl::singleton_default<shared_pool_t> singleton_t;
|
|
224
235
|
singleton_t::instance().allocate_nodes(num_elements, static_cast<typename shared_pool_t::multiallocation_chain&>(chain));
|
|
225
236
|
//typename shared_pool_t::multiallocation_chain ch;
|
|
@@ -233,16 +244,18 @@ class adaptive_pool
|
|
|
233
244
|
//!with other functions different from allocate_one(). Never throws
|
|
234
245
|
void deallocate_one(pointer p) BOOST_NOEXCEPT_OR_NOTHROW
|
|
235
246
|
{
|
|
247
|
+
BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 ));
|
|
236
248
|
typedef dtl::shared_adaptive_node_pool
|
|
237
|
-
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent> shared_pool_t;
|
|
249
|
+
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent, dtl::alignment_of<T>::value> shared_pool_t;
|
|
238
250
|
typedef dtl::singleton_default<shared_pool_t> singleton_t;
|
|
239
251
|
singleton_t::instance().deallocate_node(p);
|
|
240
252
|
}
|
|
241
253
|
|
|
242
254
|
void deallocate_individual(multiallocation_chain &chain) BOOST_NOEXCEPT_OR_NOTHROW
|
|
243
255
|
{
|
|
256
|
+
BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 ));
|
|
244
257
|
typedef dtl::shared_adaptive_node_pool
|
|
245
|
-
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent> shared_pool_t;
|
|
258
|
+
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent, dtl::alignment_of<T>::value> shared_pool_t;
|
|
246
259
|
typedef dtl::singleton_default<shared_pool_t> singleton_t;
|
|
247
260
|
//typename shared_pool_t::multiallocation_chain ch(&*chain.begin(), &*chain.last(), chain.size());
|
|
248
261
|
//singleton_t::instance().deallocate_nodes(ch);
|
|
@@ -305,7 +318,7 @@ class adaptive_pool
|
|
|
305
318
|
static void deallocate_free_blocks() BOOST_NOEXCEPT_OR_NOTHROW
|
|
306
319
|
{
|
|
307
320
|
typedef dtl::shared_adaptive_node_pool
|
|
308
|
-
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent> shared_pool_t;
|
|
321
|
+
<sizeof(T), NodesPerBlock, MaxFreeBlocks, OverheadPercent, dtl::alignment_of<T>::value> shared_pool_t;
|
|
309
322
|
typedef dtl::singleton_default<shared_pool_t> singleton_t;
|
|
310
323
|
singleton_t::instance().deallocate_free_blocks();
|
|
311
324
|
}
|
|
@@ -317,11 +330,13 @@ class adaptive_pool
|
|
|
317
330
|
|
|
318
331
|
//!An allocator always compares to true, as memory allocated with one
|
|
319
332
|
//!instance can be deallocated by another instance
|
|
333
|
+
BOOST_CONTAINER_NODISCARD
|
|
320
334
|
friend bool operator==(const adaptive_pool &, const adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW
|
|
321
335
|
{ return true; }
|
|
322
336
|
|
|
323
337
|
//!An allocator always compares to false, as memory allocated with one
|
|
324
338
|
//!instance can be deallocated by another instance
|
|
339
|
+
BOOST_CONTAINER_NODISCARD
|
|
325
340
|
friend bool operator!=(const adaptive_pool &, const adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW
|
|
326
341
|
{ return false; }
|
|
327
342
|
|
|
@@ -340,7 +355,8 @@ class adaptive_pool
|
|
|
340
355
|
std::size_t r_size;
|
|
341
356
|
{
|
|
342
357
|
void* reuse_ptr_void = reuse_ptr;
|
|
343
|
-
ret = dlmalloc_allocation_command(command, sizeof(T),
|
|
358
|
+
ret = dlmalloc_allocation_command( command, sizeof(T), dtl::alignment_of<T>::value
|
|
359
|
+
, l_size, p_size, &r_size, reuse_ptr_void);
|
|
344
360
|
reuse_ptr = ret.second ? static_cast<T*>(reuse_ptr_void) : 0;
|
|
345
361
|
}
|
|
346
362
|
prefer_in_recvd_out_size = r_size/sizeof(T);
|
|
@@ -348,30 +364,11 @@ class adaptive_pool
|
|
|
348
364
|
}
|
|
349
365
|
};
|
|
350
366
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
367
|
template < class T
|
|
371
368
|
, std::size_t NodesPerBlock = ADP_nodes_per_block
|
|
372
369
|
, std::size_t MaxFreeBlocks = ADP_max_free_blocks
|
|
373
370
|
, std::size_t OverheadPercent = ADP_overhead_percent
|
|
374
|
-
|
|
371
|
+
BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I unsigned Version = 2)
|
|
375
372
|
>
|
|
376
373
|
class private_adaptive_pool
|
|
377
374
|
{
|
|
@@ -392,7 +389,8 @@ class private_adaptive_pool
|
|
|
392
389
|
BOOST_CONTAINER_DOCIGN(BOOST_CONTAINER_STATIC_ASSERT((Version <=2)));
|
|
393
390
|
|
|
394
391
|
typedef dtl::private_adaptive_node_pool
|
|
395
|
-
<sizeof(T), NodesPerBlock, MaxFreeBlocks
|
|
392
|
+
< sizeof(T), NodesPerBlock, MaxFreeBlocks
|
|
393
|
+
, OverheadPercent, dtl::alignment_of<T>::value> pool_t;
|
|
396
394
|
pool_t m_pool;
|
|
397
395
|
|
|
398
396
|
public:
|
|
@@ -466,22 +464,23 @@ class private_adaptive_pool
|
|
|
466
464
|
|
|
467
465
|
//!Returns the number of elements that could be allocated.
|
|
468
466
|
//!Never throws
|
|
467
|
+
BOOST_CONTAINER_NODISCARD
|
|
469
468
|
size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
470
469
|
{ return size_type(-1)/(2u*sizeof(T)); }
|
|
471
470
|
|
|
472
471
|
//!Allocate memory for an array of count elements.
|
|
473
472
|
//!Throws bad_alloc if there is no enough memory
|
|
473
|
+
BOOST_CONTAINER_NODISCARD
|
|
474
474
|
pointer allocate(size_type count, const void * = 0)
|
|
475
475
|
{
|
|
476
476
|
if(BOOST_UNLIKELY(count > size_type(-1)/(2u*sizeof(T))))
|
|
477
477
|
boost::container::throw_bad_alloc();
|
|
478
478
|
|
|
479
|
-
|
|
479
|
+
BOOST_IF_CONSTEXPR(Version == 1)
|
|
480
|
+
if(count == 1){
|
|
480
481
|
return pointer(static_cast<T*>(m_pool.allocate_node()));
|
|
481
482
|
}
|
|
482
|
-
|
|
483
|
-
return static_cast<pointer>(dlmalloc_malloc(count*sizeof(T)));
|
|
484
|
-
}
|
|
483
|
+
return static_cast<pointer>(dlmalloc_memalign(count*sizeof(T), dtl::alignment_of<T>::value));
|
|
485
484
|
}
|
|
486
485
|
|
|
487
486
|
//!Deallocate allocated memory.
|
|
@@ -489,14 +488,15 @@ class private_adaptive_pool
|
|
|
489
488
|
void deallocate(const pointer &ptr, size_type count) BOOST_NOEXCEPT_OR_NOTHROW
|
|
490
489
|
{
|
|
491
490
|
(void)count;
|
|
492
|
-
|
|
491
|
+
BOOST_IF_CONSTEXPR(Version == 1)
|
|
492
|
+
if(count == 1){
|
|
493
493
|
m_pool.deallocate_node(ptr);
|
|
494
|
+
return;
|
|
494
495
|
}
|
|
495
|
-
|
|
496
|
-
dlmalloc_free(ptr);
|
|
497
|
-
}
|
|
496
|
+
dlmalloc_free(ptr);
|
|
498
497
|
}
|
|
499
498
|
|
|
499
|
+
BOOST_CONTAINER_NODISCARD
|
|
500
500
|
pointer allocation_command(allocation_type command,
|
|
501
501
|
size_type limit_size,
|
|
502
502
|
size_type &prefer_in_recvd_out_size,
|
|
@@ -516,6 +516,7 @@ class private_adaptive_pool
|
|
|
516
516
|
//!Allocates just one object. Memory allocated with this function
|
|
517
517
|
//!must be deallocated only with deallocate_one().
|
|
518
518
|
//!Throws bad_alloc if there is no enough memory
|
|
519
|
+
BOOST_CONTAINER_NODISCARD
|
|
519
520
|
pointer allocate_one()
|
|
520
521
|
{
|
|
521
522
|
return (pointer)m_pool.allocate_node();
|
|
@@ -583,11 +584,13 @@ class private_adaptive_pool
|
|
|
583
584
|
|
|
584
585
|
//!An allocator always compares to true, as memory allocated with one
|
|
585
586
|
//!instance can be deallocated by another instance
|
|
587
|
+
BOOST_CONTAINER_NODISCARD
|
|
586
588
|
friend bool operator==(const private_adaptive_pool &, const private_adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW
|
|
587
589
|
{ return true; }
|
|
588
590
|
|
|
589
591
|
//!An allocator always compares to false, as memory allocated with one
|
|
590
592
|
//!instance can be deallocated by another instance
|
|
593
|
+
BOOST_CONTAINER_NODISCARD
|
|
591
594
|
friend bool operator!=(const private_adaptive_pool &, const private_adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW
|
|
592
595
|
{ return false; }
|
|
593
596
|
|
|
@@ -606,7 +609,8 @@ class private_adaptive_pool
|
|
|
606
609
|
std::size_t r_size;
|
|
607
610
|
{
|
|
608
611
|
void* reuse_ptr_void = reuse_ptr;
|
|
609
|
-
ret = dlmalloc_allocation_command(command, sizeof(T),
|
|
612
|
+
ret = dlmalloc_allocation_command( command, sizeof(T), dtl::alignment_of<T>::value
|
|
613
|
+
, l_size, p_size, &r_size, reuse_ptr_void);
|
|
610
614
|
reuse_ptr = ret.second ? static_cast<T*>(reuse_ptr_void) : 0;
|
|
611
615
|
}
|
|
612
616
|
prefer_in_recvd_out_size = r_size/sizeof(T);
|
|
@@ -179,12 +179,11 @@ class allocator
|
|
|
179
179
|
//!Throws bad_alloc if there is no enough memory
|
|
180
180
|
//!If Version is 2, this allocated memory can only be deallocated
|
|
181
181
|
//!with deallocate() or (for Version == 2) deallocate_many()
|
|
182
|
-
|
|
182
|
+
BOOST_CONTAINER_NODISCARD pointer allocate(size_type count)
|
|
183
183
|
{
|
|
184
|
-
(void)hint;
|
|
185
184
|
if(count > size_type(-1)/(2u*sizeof(T)))
|
|
186
185
|
boost::container::throw_bad_alloc();
|
|
187
|
-
void *ret =
|
|
186
|
+
void *ret = dlmalloc_memalign(count*sizeof(T), dtl::alignment_of<T>::value);
|
|
188
187
|
if(!ret)
|
|
189
188
|
boost::container::throw_bad_alloc();
|
|
190
189
|
return static_cast<pointer>(ret);
|
|
@@ -197,7 +196,7 @@ class allocator
|
|
|
197
196
|
|
|
198
197
|
//!Returns the maximum number of elements that could be allocated.
|
|
199
198
|
//!Never throws
|
|
200
|
-
inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
199
|
+
BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
201
200
|
{ return size_type(-1)/(2u*sizeof(T)); }
|
|
202
201
|
|
|
203
202
|
//!Swaps two allocators, does nothing
|
|
@@ -207,13 +206,13 @@ class allocator
|
|
|
207
206
|
|
|
208
207
|
//!An allocator always compares to true, as memory allocated with one
|
|
209
208
|
//!instance can be deallocated by another instance
|
|
210
|
-
|
|
209
|
+
BOOST_CONTAINER_NODISCARD
|
|
211
210
|
friend bool operator==(const allocator &, const allocator &) BOOST_NOEXCEPT_OR_NOTHROW
|
|
212
211
|
{ return true; }
|
|
213
212
|
|
|
214
213
|
//!An allocator always compares to false, as memory allocated with one
|
|
215
214
|
//!instance can be deallocated by another instance
|
|
216
|
-
|
|
215
|
+
BOOST_CONTAINER_NODISCARD inline
|
|
217
216
|
friend bool operator!=(const allocator &, const allocator &) BOOST_NOEXCEPT_OR_NOTHROW
|
|
218
217
|
{ return false; }
|
|
219
218
|
|
|
@@ -221,7 +220,7 @@ class allocator
|
|
|
221
220
|
//!capabilities. Memory allocated with this function can only be deallocated with deallocate()
|
|
222
221
|
//!or deallocate_many().
|
|
223
222
|
//!This function is available only with Version == 2
|
|
224
|
-
|
|
223
|
+
BOOST_CONTAINER_NODISCARD pointer allocation_command(allocation_type command,
|
|
225
224
|
size_type limit_size,
|
|
226
225
|
size_type &prefer_in_recvd_out_size,
|
|
227
226
|
pointer &reuse)
|
|
@@ -240,7 +239,7 @@ class allocator
|
|
|
240
239
|
//!Memory must not have been allocated with
|
|
241
240
|
//!allocate_one or allocate_individual.
|
|
242
241
|
//!This function is available only with Version == 2
|
|
243
|
-
|
|
242
|
+
BOOST_CONTAINER_NODISCARD size_type size(pointer p) const BOOST_NOEXCEPT_OR_NOTHROW
|
|
244
243
|
{
|
|
245
244
|
BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 ));
|
|
246
245
|
return dlmalloc_size(p);
|
|
@@ -250,7 +249,7 @@ class allocator
|
|
|
250
249
|
//!must be deallocated only with deallocate_one().
|
|
251
250
|
//!Throws bad_alloc if there is no enough memory
|
|
252
251
|
//!This function is available only with Version == 2
|
|
253
|
-
|
|
252
|
+
BOOST_CONTAINER_NODISCARD inline pointer allocate_one()
|
|
254
253
|
{
|
|
255
254
|
BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 ));
|
|
256
255
|
return this->allocate(1);
|
|
@@ -359,7 +358,8 @@ class allocator
|
|
|
359
358
|
std::size_t r_size;
|
|
360
359
|
{
|
|
361
360
|
void* reuse_ptr_void = reuse_ptr;
|
|
362
|
-
ret = dlmalloc_allocation_command(command, sizeof(T),
|
|
361
|
+
ret = dlmalloc_allocation_command( command, sizeof(T), dtl::alignment_of<T>::value
|
|
362
|
+
, l_size, p_size, &r_size, reuse_ptr_void);
|
|
363
363
|
reuse_ptr = ret.second ? static_cast<T*>(reuse_ptr_void) : 0;
|
|
364
364
|
}
|
|
365
365
|
prefer_in_recvd_out_size = r_size/sizeof(T);
|
|
@@ -47,6 +47,8 @@
|
|
|
47
47
|
#include <boost/move/detail/fwd_macros.hpp>
|
|
48
48
|
#endif
|
|
49
49
|
|
|
50
|
+
#include <boost/assert.hpp>
|
|
51
|
+
|
|
50
52
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
51
53
|
|
|
52
54
|
#if defined(BOOST_CONTAINER_GCC_COMPATIBLE_HAS_DIAGNOSTIC_IGNORED)
|
|
@@ -84,13 +86,26 @@
|
|
|
84
86
|
|
|
85
87
|
namespace boost {
|
|
86
88
|
namespace container {
|
|
89
|
+
|
|
90
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
91
|
+
|
|
87
92
|
namespace dtl {
|
|
88
93
|
|
|
94
|
+
template <class T>
|
|
95
|
+
class allocator_traits_dummy
|
|
96
|
+
{
|
|
97
|
+
public:
|
|
98
|
+
typedef T value_type;
|
|
99
|
+
T *allocate(std::size_t){ return 0; }
|
|
100
|
+
void deallocate(T *, std::size_t){}
|
|
101
|
+
};
|
|
102
|
+
|
|
89
103
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
90
104
|
|
|
91
105
|
template<class T, class ...Args>
|
|
92
106
|
BOOST_CONTAINER_FORCEINLINE void construct_type(T *p, BOOST_FWD_REF(Args) ...args)
|
|
93
107
|
{
|
|
108
|
+
BOOST_CONTAINER_ASSUME(p != 0); //elide the new-expression's null check on placement new
|
|
94
109
|
::new(const_cast<void*>(static_cast<const volatile void*>(p)), boost_container_new_t()) T(::boost::forward<Args>(args)...);
|
|
95
110
|
}
|
|
96
111
|
|
|
@@ -102,6 +117,7 @@ BOOST_CONTAINER_FORCEINLINE \
|
|
|
102
117
|
typename dtl::disable_if_c<dtl::is_pair<T>::value, void >::type \
|
|
103
118
|
construct_type(T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
104
119
|
{\
|
|
120
|
+
BOOST_CONTAINER_ASSUME(p != 0);\
|
|
105
121
|
::new(const_cast<void*>(static_cast<const volatile void*>(p)), boost_container_new_t()) T( BOOST_MOVE_FWD##N );\
|
|
106
122
|
}\
|
|
107
123
|
//
|
|
@@ -185,8 +201,6 @@ construct_type(T* p, BOOST_FWD_REF(U) x, BOOST_FWD_REF(V) y)
|
|
|
185
201
|
|
|
186
202
|
} //namespace dtl
|
|
187
203
|
|
|
188
|
-
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
189
|
-
|
|
190
204
|
template<class T, class VoidAllocator, class Options>
|
|
191
205
|
class small_vector_allocator;
|
|
192
206
|
|
|
@@ -418,6 +432,7 @@ struct allocator_traits
|
|
|
418
432
|
|
|
419
433
|
//! <b>Returns</b>: <code>a.allocate(n)</code>
|
|
420
434
|
//!
|
|
435
|
+
BOOST_CONTAINER_NODISCARD
|
|
421
436
|
inline static pointer allocate(Allocator &a, size_type n)
|
|
422
437
|
{ return a.allocate(n); }
|
|
423
438
|
|
|
@@ -429,6 +444,7 @@ struct allocator_traits
|
|
|
429
444
|
|
|
430
445
|
//! <b>Effects</b>: calls <code>a.allocate(n, p)</code> if that call is well-formed;
|
|
431
446
|
//! otherwise, invokes <code>a.allocate(n)</code>
|
|
447
|
+
BOOST_CONTAINER_NODISCARD
|
|
432
448
|
inline static pointer allocate(Allocator &a, size_type n, const_void_pointer p)
|
|
433
449
|
{
|
|
434
450
|
const bool value = boost::container::dtl::
|
|
@@ -453,6 +469,7 @@ struct allocator_traits
|
|
|
453
469
|
|
|
454
470
|
//! <b>Returns</b>: <code>a.max_size()</code> if that expression is well-formed; otherwise,
|
|
455
471
|
//! <code>numeric_limits<size_type>::max()</code>.
|
|
472
|
+
BOOST_CONTAINER_NODISCARD
|
|
456
473
|
inline static size_type max_size(const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW
|
|
457
474
|
{
|
|
458
475
|
const bool value = allocator_traits_detail::has_max_size<Allocator, size_type (Allocator::*)() const>::value;
|
|
@@ -474,6 +491,17 @@ struct allocator_traits
|
|
|
474
491
|
return allocator_traits::priv_select_on_container_copy_construction(flag, a);
|
|
475
492
|
}
|
|
476
493
|
|
|
494
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
495
|
+
//! <b>Effects</b>: calls <code>a.construct(p)</code> if that call is well-formed;
|
|
496
|
+
//! otherwise, invokes <code>`placement new` (static_cast<void*>(p)) T()</code>
|
|
497
|
+
//!
|
|
498
|
+
//! <b>Note</b>: Non-standard extension .
|
|
499
|
+
template <class T>
|
|
500
|
+
inline static void construct(Allocator & a, T* p, const value_init_t &)
|
|
501
|
+
{ allocator_traits::construct(a, p); }
|
|
502
|
+
|
|
503
|
+
#endif
|
|
504
|
+
|
|
477
505
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
478
506
|
//! <b>Effects</b>: calls <code>a.construct(p, std::forward<Args>(args)...)</code> if that call is well-formed;
|
|
479
507
|
//! otherwise, invokes <code>`placement new` (static_cast<void*>(p)) T(std::forward<Args>(args)...)</code>
|
|
@@ -669,6 +697,10 @@ struct allocator_traits
|
|
|
669
697
|
inline static void priv_construct(dtl::false_type, Allocator &, T *p, const ::boost::container::default_init_t&)
|
|
670
698
|
{ ::new((void*)p, boost_container_new_t()) T; }
|
|
671
699
|
|
|
700
|
+
template<class T>
|
|
701
|
+
inline static void priv_construct(dtl::false_type, Allocator &, T *p, const ::boost::container::value_init_t&)
|
|
702
|
+
{ ::new((void*)p, boost_container_new_t()) T(); }
|
|
703
|
+
|
|
672
704
|
inline static bool priv_storage_is_unpropagable(dtl::true_type, const Allocator &a, pointer p)
|
|
673
705
|
{ return a.storage_is_unpropagable(p); }
|
|
674
706
|
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
//! - boost::container::small_vector_base
|
|
30
30
|
//! - boost::container::small_vector
|
|
31
31
|
//! - boost::container::devector
|
|
32
|
+
//! - boost::container::deque
|
|
33
|
+
//! - boost::container::segtor
|
|
32
34
|
//! - boost::container::slist
|
|
33
35
|
//! - boost::container::list
|
|
34
36
|
//! - boost::container::set
|
|
@@ -132,6 +134,11 @@ template <class T
|
|
|
132
134
|
,class Options = void>
|
|
133
135
|
class deque;
|
|
134
136
|
|
|
137
|
+
template <class T
|
|
138
|
+
,class Allocator = void
|
|
139
|
+
,class Options = void>
|
|
140
|
+
class segtor;
|
|
141
|
+
|
|
135
142
|
template <class T
|
|
136
143
|
,class Allocator = void >
|
|
137
144
|
class list;
|
|
@@ -140,6 +147,10 @@ template <class T
|
|
|
140
147
|
,class Allocator = void >
|
|
141
148
|
class slist;
|
|
142
149
|
|
|
150
|
+
template <class T
|
|
151
|
+
,class Allocator = void >
|
|
152
|
+
class hub;
|
|
153
|
+
|
|
143
154
|
template <class Key
|
|
144
155
|
,class Compare = std::less<Key>
|
|
145
156
|
,class Allocator = void
|
|
@@ -272,8 +283,9 @@ struct small_flat_multimap_of
|
|
|
272
283
|
};
|
|
273
284
|
|
|
274
285
|
template <class CharT
|
|
275
|
-
,class Traits
|
|
276
|
-
,class Allocator = void
|
|
286
|
+
,class Traits = std::char_traits<CharT>
|
|
287
|
+
,class Allocator = void
|
|
288
|
+
,class Options = void >
|
|
277
289
|
class basic_string;
|
|
278
290
|
|
|
279
291
|
typedef basic_string <char> string;
|