passenger 6.0.23 → 6.0.24
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.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG +26 -1
- data/Rakefile +7 -3
- data/bin/passenger-install-apache2-module +5 -0
- data/bin/passenger-install-nginx-module +17 -2
- data/build/apache2.rb +1 -1
- data/build/basics.rb +10 -4
- data/build/cxx_tests.rb +18 -7
- data/build/support/cxx_dependency_map.rb +40 -6
- data/build/test_basics.rb +4 -12
- data/package.json +1 -1
- data/passenger.gemspec +1 -1
- data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +9 -0
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +9 -0
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +63 -50
- data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +19 -9
- data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/Verification.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group.h +15 -5
- data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +11 -1
- data/src/agent/Core/ApplicationPool/Pool.h +0 -2
- data/src/agent/Core/ApplicationPool/Process.h +22 -6
- data/src/agent/Core/ApplicationPool/Session.h +6 -1
- data/src/agent/Core/Config.h +7 -3
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Core/CoreMain.cpp +10 -17
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -53
- data/src/agent/Core/SpawningKit/Handshake/Session.h +3 -0
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
- data/src/agent/Core/SpawningKit/SmartSpawner.h +6 -2
- data/src/agent/Core/SpawningKit/Spawner.h +4 -0
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +88 -9
- data/src/agent/Shared/Fundamentals/AbortHandler.h +2 -0
- data/src/agent/Shared/Fundamentals/Initialization.cpp +9 -3
- data/src/agent/Shared/Fundamentals/Initialization.h +3 -3
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +6 -7
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +4 -7
- data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +5 -3
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +3 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +3 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +2 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/DataStructures/StringMap.h +0 -1
- data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
- data/src/cxx_supportlib/SafeLibev.h +1 -3
- data/src/cxx_supportlib/ServerKit/Hooks.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +0 -1
- data/src/cxx_supportlib/ServerKit/HttpServer.h +15 -10
- data/src/cxx_supportlib/ServerKit/Server.h +0 -6
- data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +2 -0
- data/src/cxx_supportlib/Utils/SpeedMeter.h +0 -3
- data/src/cxx_supportlib/oxt/implementation.cpp +11 -0
- data/src/cxx_supportlib/oxt/system_calls.cpp +10 -3
- data/src/cxx_supportlib/oxt/thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +35 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +74 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +88 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +91 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +105 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +90 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +303 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +296 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/impl/co_composed.hpp → co_composed.hpp} +208 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +10 -201
- data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +415 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +214 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_message.hpp → detail/completion_message.hpp} +14 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_payload.hpp → detail/completion_payload.hpp} +30 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_handler.hpp → detail/completion_payload_handler.hpp} +15 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +26 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -118
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +7 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +44 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +20 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +363 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +29 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +27 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +17 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +3 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +12 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +38 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +144 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +45 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +60 -166
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +26 -177
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +16 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +13 -286
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +55 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +26 -185
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +16 -87
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +12 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +127 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +70 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +114 -36
- data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +43 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +147 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +74 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +42 -11
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +15 -37
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +151 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +11 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +611 -102
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +47 -47
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +25 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +35 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +55 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +96 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +86 -52
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +145 -65
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +105 -22
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +30 -22
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +19 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +15 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +31 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +45 -43
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +45 -33
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +5 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +55 -47
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +222 -73
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +53 -5
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +22 -34
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +141 -38
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +22 -17
- data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +22 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +38 -10
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +111 -2
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +33 -7
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +6 -2
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +12 -4
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +32 -5
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +0 -4
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +5 -1
- data/src/ruby_supportlib/phusion_passenger/utils.rb +5 -15
- data/src/ruby_supportlib/phusion_passenger.rb +5 -5
- metadata +21 -8
@@ -29,7 +29,7 @@
|
|
29
29
|
#include <boost/container/detail/type_traits.hpp>
|
30
30
|
#include <boost/container/detail/mpl.hpp>
|
31
31
|
#include <boost/container/detail/std_fwd.hpp>
|
32
|
-
#include <boost/container/detail/is_pair.hpp>
|
32
|
+
#include <boost/container/detail/is_pair.hpp> //Forward declares boost::tuples::tuple
|
33
33
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
34
34
|
# include <boost/container/detail/variadic_templates_tools.hpp>
|
35
35
|
#endif
|
@@ -46,7 +46,7 @@ namespace pair_impl {
|
|
46
46
|
template <class TupleClass>
|
47
47
|
struct is_boost_tuple
|
48
48
|
{
|
49
|
-
|
49
|
+
BOOST_STATIC_CONSTEXPR bool value = false;
|
50
50
|
};
|
51
51
|
|
52
52
|
template <
|
@@ -56,7 +56,7 @@ template <
|
|
56
56
|
class T9>
|
57
57
|
struct is_boost_tuple< boost::tuples::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> >
|
58
58
|
{
|
59
|
-
|
59
|
+
BOOST_STATIC_CONSTEXPR bool value = true;
|
60
60
|
};
|
61
61
|
|
62
62
|
template<class Tuple>
|
@@ -67,13 +67,13 @@ struct disable_if_boost_tuple
|
|
67
67
|
template<class T>
|
68
68
|
struct is_tuple_null
|
69
69
|
{
|
70
|
-
|
70
|
+
BOOST_STATIC_CONSTEXPR bool value = false;
|
71
71
|
};
|
72
72
|
|
73
73
|
template<>
|
74
74
|
struct is_tuple_null<boost::tuples::null_type>
|
75
75
|
{
|
76
|
-
|
76
|
+
BOOST_STATIC_CONSTEXPR bool value = true;
|
77
77
|
};
|
78
78
|
|
79
79
|
} //namespace detail {
|
@@ -482,7 +482,7 @@ inline void swap(pair<T1, T2>& x, pair<T1, T2>& y)
|
|
482
482
|
template<class T1, class T2>
|
483
483
|
struct has_move_emulation_enabled< ::boost::container::dtl::pair<T1, T2> >
|
484
484
|
{
|
485
|
-
|
485
|
+
BOOST_STATIC_CONSTEXPR bool value = true;
|
486
486
|
};
|
487
487
|
|
488
488
|
#endif
|
@@ -497,7 +497,7 @@ struct is_class_or_union< ::boost::container::dtl::pair<T1, T2> >
|
|
497
497
|
//This specialization is needed to avoid instantiation of pair in
|
498
498
|
//is_class, and allow recursive maps.
|
499
499
|
{
|
500
|
-
|
500
|
+
BOOST_STATIC_CONSTEXPR bool value = true;
|
501
501
|
};
|
502
502
|
|
503
503
|
template <class T1, class T2>
|
@@ -505,7 +505,7 @@ struct is_class_or_union< std::pair<T1, T2> >
|
|
505
505
|
//This specialization is needed to avoid instantiation of pair in
|
506
506
|
//is_class, and allow recursive maps.
|
507
507
|
{
|
508
|
-
|
508
|
+
BOOST_STATIC_CONSTEXPR bool value = true;
|
509
509
|
};
|
510
510
|
|
511
511
|
template<class T>
|
@@ -516,7 +516,7 @@ struct is_union< ::boost::container::dtl::pair<T1, T2> >
|
|
516
516
|
//This specialization is needed to avoid instantiation of pair in
|
517
517
|
//is_class, and allow recursive maps.
|
518
518
|
{
|
519
|
-
|
519
|
+
BOOST_STATIC_CONSTEXPR bool value = false;
|
520
520
|
};
|
521
521
|
|
522
522
|
template <class T1, class T2>
|
@@ -524,7 +524,7 @@ struct is_union< std::pair<T1, T2> >
|
|
524
524
|
//This specialization is needed to avoid instantiation of pair in
|
525
525
|
//is_class, and allow recursive maps.
|
526
526
|
{
|
527
|
-
|
527
|
+
BOOST_STATIC_CONSTEXPR bool value = false;
|
528
528
|
};
|
529
529
|
|
530
530
|
template<class T>
|
@@ -535,7 +535,7 @@ struct is_class< ::boost::container::dtl::pair<T1, T2> >
|
|
535
535
|
//This specialization is needed to avoid instantiation of pair in
|
536
536
|
//is_class, and allow recursive maps.
|
537
537
|
{
|
538
|
-
|
538
|
+
BOOST_STATIC_CONSTEXPR bool value = true;
|
539
539
|
};
|
540
540
|
|
541
541
|
template <class T1, class T2>
|
@@ -543,7 +543,7 @@ struct is_class< std::pair<T1, T2> >
|
|
543
543
|
//This specialization is needed to avoid instantiation of pair in
|
544
544
|
//is_class, and allow recursive maps.
|
545
545
|
{
|
546
|
-
|
546
|
+
BOOST_STATIC_CONSTEXPR bool value = true;
|
547
547
|
};
|
548
548
|
|
549
549
|
|
@@ -555,7 +555,7 @@ template<class A, class B>
|
|
555
555
|
struct is_trivially_copy_assignable
|
556
556
|
<boost::container::dtl::pair<A,B> >
|
557
557
|
{
|
558
|
-
|
558
|
+
BOOST_STATIC_CONSTEXPR bool value = false ;
|
559
559
|
};
|
560
560
|
|
561
561
|
template<class T>
|
@@ -565,7 +565,7 @@ template<class A, class B>
|
|
565
565
|
struct is_trivially_move_assignable
|
566
566
|
<boost::container::dtl::pair<A,B> >
|
567
567
|
{
|
568
|
-
|
568
|
+
BOOST_STATIC_CONSTEXPR bool value = false;
|
569
569
|
};
|
570
570
|
|
571
571
|
template<class T>
|
@@ -574,7 +574,7 @@ struct is_trivially_copy_assignable;
|
|
574
574
|
template<class A, class B>
|
575
575
|
struct is_trivially_copy_constructible<boost::container::dtl::pair<A,B> >
|
576
576
|
{
|
577
|
-
|
577
|
+
BOOST_STATIC_CONSTEXPR bool value = false;
|
578
578
|
};
|
579
579
|
|
580
580
|
template<class T>
|
@@ -583,7 +583,7 @@ struct is_trivially_move_assignable;
|
|
583
583
|
template<class A, class B>
|
584
584
|
struct is_trivially_move_constructible<boost::container::dtl::pair<A,B> >
|
585
585
|
{
|
586
|
-
|
586
|
+
BOOST_STATIC_CONSTEXPR bool value = false;
|
587
587
|
};
|
588
588
|
|
589
589
|
template<class T>
|
@@ -592,7 +592,7 @@ struct is_trivially_destructible;
|
|
592
592
|
template<class A, class B>
|
593
593
|
struct is_trivially_destructible<boost::container::dtl::pair<A,B> >
|
594
594
|
{
|
595
|
-
|
595
|
+
BOOST_STATIC_CONSTEXPR bool value = boost::move_detail::is_trivially_destructible<A>::value &&
|
596
596
|
boost::move_detail::is_trivially_destructible<B>::value ;
|
597
597
|
};
|
598
598
|
|
@@ -39,7 +39,7 @@ struct node_slist_helper
|
|
39
39
|
struct fake_segment_manager
|
40
40
|
{
|
41
41
|
typedef void * void_pointer;
|
42
|
-
|
42
|
+
BOOST_STATIC_CONSTEXPR std::size_t PayloadPerAllocation = BOOST_CONTAINER_ALLOCATION_PAYLOAD;
|
43
43
|
|
44
44
|
typedef boost::container::dtl::
|
45
45
|
basic_multiallocation_chain<void*> multiallocation_chain;
|
@@ -90,7 +90,7 @@ template<>
|
|
90
90
|
struct is_stateless_segment_manager
|
91
91
|
<boost::container::dtl::fake_segment_manager>
|
92
92
|
{
|
93
|
-
|
93
|
+
BOOST_STATIC_CONSTEXPR bool value = true;
|
94
94
|
};
|
95
95
|
|
96
96
|
} //namespace dtl {
|
@@ -31,11 +31,11 @@ namespace pmr {
|
|
31
31
|
|
32
32
|
class pool_data_t;
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
BOOST_CONTAINER_CONSTANT_VAR std::size_t pool_options_minimum_max_blocks_per_chunk = 1u;
|
35
|
+
BOOST_CONTAINER_CONSTANT_VAR std::size_t pool_options_default_max_blocks_per_chunk = 32u;
|
36
|
+
BOOST_CONTAINER_CONSTANT_VAR std::size_t pool_options_minimum_largest_required_pool_block =
|
37
37
|
memory_resource::max_align > 2*sizeof(void*) ? memory_resource::max_align : 2*sizeof(void*);
|
38
|
-
|
38
|
+
BOOST_CONTAINER_CONSTANT_VAR std::size_t pool_options_default_largest_required_pool_block =
|
39
39
|
pool_options_minimum_largest_required_pool_block > 4096u
|
40
40
|
? pool_options_minimum_largest_required_pool_block : 4096u;
|
41
41
|
|
@@ -52,7 +52,6 @@
|
|
52
52
|
#include <boost/move/detail/fwd_macros.hpp>
|
53
53
|
#endif
|
54
54
|
#include <boost/move/detail/move_helpers.hpp>
|
55
|
-
#include <boost/move/detail/force_ptr.hpp>
|
56
55
|
|
57
56
|
|
58
57
|
|
@@ -252,13 +251,13 @@ struct intrusive_tree_type
|
|
252
251
|
//Trait to detect manually rebalanceable tree types
|
253
252
|
template<boost::container::tree_type_enum tree_type_value>
|
254
253
|
struct is_manually_balanceable
|
255
|
-
{
|
254
|
+
{ BOOST_STATIC_CONSTEXPR bool value = true; };
|
256
255
|
|
257
256
|
template<> struct is_manually_balanceable<red_black_tree>
|
258
|
-
{
|
257
|
+
{ BOOST_STATIC_CONSTEXPR bool value = false; };
|
259
258
|
|
260
259
|
template<> struct is_manually_balanceable<avl_tree>
|
261
|
-
{
|
260
|
+
{ BOOST_STATIC_CONSTEXPR bool value = false; };
|
262
261
|
|
263
262
|
//Proxy traits to implement different operations depending on the
|
264
263
|
//is_manually_balanceable<>::value
|
@@ -689,40 +688,13 @@ class tree
|
|
689
688
|
boost::container::dtl::is_nothrow_move_assignable<Compare>::value)
|
690
689
|
{
|
691
690
|
if (BOOST_LIKELY(this != &x)) {
|
692
|
-
|
693
|
-
|
694
|
-
const bool
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
if(propagate_alloc || allocators_equal){
|
700
|
-
//Destroy
|
701
|
-
this->clear();
|
702
|
-
//Move allocator if needed
|
703
|
-
this->AllocHolder::move_assign_alloc(x);
|
704
|
-
//Obtain resources
|
705
|
-
this->icont() = boost::move(x.icont());
|
706
|
-
}
|
707
|
-
//Else do a one by one move
|
708
|
-
else{
|
709
|
-
//Transfer all the nodes to a temporary tree
|
710
|
-
//If anything goes wrong, all the nodes will be destroyed
|
711
|
-
//automatically
|
712
|
-
Icont other_tree(::boost::move(this->icont()));
|
713
|
-
|
714
|
-
//Now recreate the source tree reusing nodes stored by other_tree
|
715
|
-
this->icont().clone_from
|
716
|
-
(::boost::move(x.icont())
|
717
|
-
, RecyclingCloner<AllocHolder, true>(*this, other_tree)
|
718
|
-
, Destroyer(this->node_alloc()));
|
719
|
-
|
720
|
-
//If there are remaining nodes, destroy them
|
721
|
-
NodePtr p;
|
722
|
-
while((p = other_tree.unlink_leftmost_without_rebalance())){
|
723
|
-
AllocHolder::destroy_node(p);
|
724
|
-
}
|
725
|
-
}
|
691
|
+
//We know resources can be transferred at comiple time if both allocators are
|
692
|
+
//always equal or the allocator is going to be propagated
|
693
|
+
const bool can_steal_resources_alloc
|
694
|
+
= allocator_traits_type::propagate_on_container_move_assignment::value
|
695
|
+
|| allocator_traits_type::is_always_equal::value;
|
696
|
+
dtl::bool_<can_steal_resources_alloc> flag;
|
697
|
+
this->priv_move_assign(boost::move(x), flag);
|
726
698
|
}
|
727
699
|
return *this;
|
728
700
|
}
|
@@ -896,6 +868,42 @@ class tree
|
|
896
868
|
|
897
869
|
|
898
870
|
private:
|
871
|
+
void priv_move_assign(BOOST_RV_REF(tree) x, dtl::bool_<true> /*steal_resources*/)
|
872
|
+
{
|
873
|
+
//Destroy objects but retain memory in case x reuses it in the future
|
874
|
+
this->clear();
|
875
|
+
//Move allocator if needed
|
876
|
+
this->AllocHolder::move_assign_alloc(x);
|
877
|
+
//Obtain resources
|
878
|
+
this->icont() = boost::move(x.icont());
|
879
|
+
}
|
880
|
+
|
881
|
+
void priv_move_assign(BOOST_RV_REF(tree) x, dtl::bool_<false> /*steal_resources*/)
|
882
|
+
{
|
883
|
+
//We can't guarantee a compile-time equal allocator or propagation so fallback to runtime
|
884
|
+
//Resources can be transferred if both allocators are equal
|
885
|
+
if (this->node_alloc() == x.node_alloc()) {
|
886
|
+
this->priv_move_assign(boost::move(x), dtl::true_());
|
887
|
+
}
|
888
|
+
else {
|
889
|
+
//Transfer all the nodes to a temporary tree
|
890
|
+
//If anything goes wrong, all the nodes will be destroyed
|
891
|
+
//automatically
|
892
|
+
Icont other_tree(::boost::move(this->icont()));
|
893
|
+
|
894
|
+
//Now recreate the source tree reusing nodes stored by other_tree
|
895
|
+
this->icont().clone_from
|
896
|
+
(::boost::move(x.icont())
|
897
|
+
, RecyclingCloner<AllocHolder, true>(*this, other_tree)
|
898
|
+
, Destroyer(this->node_alloc()));
|
899
|
+
|
900
|
+
//If there are remaining nodes, destroy them
|
901
|
+
NodePtr p;
|
902
|
+
while ((p = other_tree.unlink_leftmost_without_rebalance())) {
|
903
|
+
AllocHolder::destroy_node(p);
|
904
|
+
}
|
905
|
+
}
|
906
|
+
}
|
899
907
|
|
900
908
|
template<class KeyConvertible, class M>
|
901
909
|
iiterator priv_insert_or_assign_commit
|
@@ -1134,6 +1142,31 @@ class tree
|
|
1134
1142
|
return ret;
|
1135
1143
|
}
|
1136
1144
|
|
1145
|
+
template <class K>
|
1146
|
+
inline typename dtl::enable_if_c<
|
1147
|
+
dtl::is_transparent<key_compare>::value && //transparent
|
1148
|
+
!dtl::is_convertible<K, iterator>::value && //not convertible to iterator
|
1149
|
+
!dtl::is_convertible<K, const_iterator>::value //not convertible to const_iterator
|
1150
|
+
, size_type>::type
|
1151
|
+
erase(const K& k)
|
1152
|
+
{ return AllocHolder::erase_key(k, KeyNodeCompare(key_comp()), alloc_version()); }
|
1153
|
+
|
1154
|
+
template <class K>
|
1155
|
+
inline typename dtl::enable_if_c<
|
1156
|
+
dtl::is_transparent<key_compare>::value && //transparent
|
1157
|
+
!dtl::is_convertible<K, iterator>::value && //not convertible to iterator
|
1158
|
+
!dtl::is_convertible<K, const_iterator>::value //not convertible to const_iterator
|
1159
|
+
, size_type>::type
|
1160
|
+
erase_unique(const K& k)
|
1161
|
+
{
|
1162
|
+
iterator i = this->find(k);
|
1163
|
+
size_type ret = static_cast<size_type>(i != this->end());
|
1164
|
+
|
1165
|
+
if (ret)
|
1166
|
+
this->erase(i);
|
1167
|
+
return ret;
|
1168
|
+
}
|
1169
|
+
|
1137
1170
|
iterator erase(const_iterator first, const_iterator last)
|
1138
1171
|
{
|
1139
1172
|
BOOST_ASSERT(first == last || (first != this->cend() && (priv_is_linked)(first)));
|
@@ -1232,13 +1265,13 @@ class tree
|
|
1232
1265
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1233
1266
|
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
|
1234
1267
|
find(const K& k)
|
1235
|
-
{ return iterator(this->icont().find(k, KeyNodeCompare())); }
|
1268
|
+
{ return iterator(this->icont().find(k, KeyNodeCompare(key_comp()))); }
|
1236
1269
|
|
1237
1270
|
template <class K>
|
1238
1271
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1239
1272
|
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::type
|
1240
1273
|
find(const K& k) const
|
1241
|
-
{ return const_iterator(this->non_const_icont().find(k, KeyNodeCompare())); }
|
1274
|
+
{ return const_iterator(this->non_const_icont().find(k, KeyNodeCompare(key_comp()))); }
|
1242
1275
|
|
1243
1276
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1244
1277
|
size_type count(const key_type& k) const
|
@@ -1248,7 +1281,7 @@ class tree
|
|
1248
1281
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1249
1282
|
typename dtl::enable_if_transparent<key_compare, K, size_type>::type
|
1250
1283
|
count(const K& k) const
|
1251
|
-
{ return size_type(this->icont().count(k, KeyNodeCompare())); }
|
1284
|
+
{ return size_type(this->icont().count(k, KeyNodeCompare(key_comp()))); }
|
1252
1285
|
|
1253
1286
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1254
1287
|
bool contains(const key_type& x) const
|
@@ -1272,13 +1305,13 @@ class tree
|
|
1272
1305
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1273
1306
|
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
|
1274
1307
|
lower_bound(const K& k)
|
1275
|
-
{ return iterator(this->icont().lower_bound(k, KeyNodeCompare())); }
|
1308
|
+
{ return iterator(this->icont().lower_bound(k, KeyNodeCompare(key_comp()))); }
|
1276
1309
|
|
1277
1310
|
template <class K>
|
1278
1311
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1279
1312
|
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::type
|
1280
1313
|
lower_bound(const K& k) const
|
1281
|
-
{ return const_iterator(this->non_const_icont().lower_bound(k, KeyNodeCompare())); }
|
1314
|
+
{ return const_iterator(this->non_const_icont().lower_bound(k, KeyNodeCompare(key_comp()))); }
|
1282
1315
|
|
1283
1316
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1284
1317
|
iterator upper_bound(const key_type& k)
|
@@ -1292,13 +1325,13 @@ class tree
|
|
1292
1325
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1293
1326
|
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
|
1294
1327
|
upper_bound(const K& k)
|
1295
|
-
{ return iterator(this->icont().upper_bound(k, KeyNodeCompare())); }
|
1328
|
+
{ return iterator(this->icont().upper_bound(k, KeyNodeCompare(key_comp()))); }
|
1296
1329
|
|
1297
1330
|
template <class K>
|
1298
1331
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1299
1332
|
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::type
|
1300
1333
|
upper_bound(const K& k) const
|
1301
|
-
{ return const_iterator(this->non_const_icont().upper_bound(k, KeyNodeCompare())); }
|
1334
|
+
{ return const_iterator(this->non_const_icont().upper_bound(k, KeyNodeCompare(key_comp()))); }
|
1302
1335
|
|
1303
1336
|
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
1304
1337
|
std::pair<iterator,iterator> equal_range(const key_type& k)
|
@@ -1322,7 +1355,7 @@ class tree
|
|
1322
1355
|
equal_range(const K& k)
|
1323
1356
|
{
|
1324
1357
|
std::pair<iiterator, iiterator> ret =
|
1325
|
-
this->icont().equal_range(k, KeyNodeCompare());
|
1358
|
+
this->icont().equal_range(k, KeyNodeCompare(key_comp()));
|
1326
1359
|
return std::pair<iterator,iterator>(iterator(ret.first), iterator(ret.second));
|
1327
1360
|
}
|
1328
1361
|
|
@@ -1332,7 +1365,7 @@ class tree
|
|
1332
1365
|
equal_range(const K& k) const
|
1333
1366
|
{
|
1334
1367
|
std::pair<iiterator, iiterator> ret =
|
1335
|
-
this->non_const_icont().equal_range(k, KeyNodeCompare());
|
1368
|
+
this->non_const_icont().equal_range(k, KeyNodeCompare(key_comp()));
|
1336
1369
|
return std::pair<const_iterator,const_iterator>
|
1337
1370
|
(const_iterator(ret.first), const_iterator(ret.second));
|
1338
1371
|
}
|
@@ -1360,7 +1393,7 @@ class tree
|
|
1360
1393
|
lower_bound_range(const K& k)
|
1361
1394
|
{
|
1362
1395
|
std::pair<iiterator, iiterator> ret =
|
1363
|
-
this->icont().lower_bound_range(k, KeyNodeCompare());
|
1396
|
+
this->icont().lower_bound_range(k, KeyNodeCompare(key_comp()));
|
1364
1397
|
return std::pair<iterator,iterator>(iterator(ret.first), iterator(ret.second));
|
1365
1398
|
}
|
1366
1399
|
|
@@ -1370,7 +1403,7 @@ class tree
|
|
1370
1403
|
lower_bound_range(const K& k) const
|
1371
1404
|
{
|
1372
1405
|
std::pair<iiterator, iiterator> ret =
|
1373
|
-
this->non_const_icont().lower_bound_range(k, KeyNodeCompare());
|
1406
|
+
this->non_const_icont().lower_bound_range(k, KeyNodeCompare(key_comp()));
|
1374
1407
|
return std::pair<const_iterator,const_iterator>
|
1375
1408
|
(const_iterator(ret.first), const_iterator(ret.second));
|
1376
1409
|
}
|
@@ -1425,9 +1458,10 @@ struct has_trivial_destructor_after_move
|
|
1425
1458
|
{
|
1426
1459
|
typedef typename ::boost::container::dtl::tree<T, KeyOfValue, Compare, Allocator, Options>::allocator_type allocator_type;
|
1427
1460
|
typedef typename ::boost::container::allocator_traits<allocator_type>::pointer pointer;
|
1428
|
-
|
1429
|
-
|
1430
|
-
|
1461
|
+
BOOST_STATIC_CONSTEXPR bool value =
|
1462
|
+
::boost::has_trivial_destructor_after_move<allocator_type>::value &&
|
1463
|
+
::boost::has_trivial_destructor_after_move<pointer>::value &&
|
1464
|
+
::boost::has_trivial_destructor_after_move<Compare>::value;
|
1431
1465
|
};
|
1432
1466
|
|
1433
1467
|
} //namespace boost {
|
@@ -57,20 +57,20 @@ struct has_version
|
|
57
57
|
template <class U> static two test(...);
|
58
58
|
template <class U> static char test(const typename U::version*);
|
59
59
|
public:
|
60
|
-
|
60
|
+
BOOST_STATIC_CONSTEXPR bool value = sizeof(test<T>(0)) == 1;
|
61
61
|
void dummy(){}
|
62
62
|
};
|
63
63
|
|
64
64
|
template <class T, bool = has_version<T>::value>
|
65
65
|
struct version
|
66
66
|
{
|
67
|
-
|
67
|
+
BOOST_STATIC_CONSTEXPR unsigned value = 1;
|
68
68
|
};
|
69
69
|
|
70
70
|
template <class T>
|
71
71
|
struct version<T, true>
|
72
72
|
{
|
73
|
-
|
73
|
+
BOOST_STATIC_CONSTEXPR unsigned value = extract_version<T>::type::value;
|
74
74
|
};
|
75
75
|
|
76
76
|
} //namespace impl
|
@@ -83,7 +83,7 @@ struct version
|
|
83
83
|
template<class T, unsigned N>
|
84
84
|
struct is_version
|
85
85
|
{
|
86
|
-
|
86
|
+
BOOST_STATIC_CONSTEXPR bool value =
|
87
87
|
is_same< typename version<T>::type, integral_constant<unsigned, N> >::value;
|
88
88
|
};
|
89
89
|
|
@@ -230,4 +230,16 @@ namespace boost {
|
|
230
230
|
# define BOOST_CONTAINER_STATIC_ASSERT_MSG( B, Msg ) BOOST_CONTAINER_STATIC_ASSERT( B )
|
231
231
|
#endif
|
232
232
|
|
233
|
+
#if !defined(BOOST_NO_CXX17_INLINE_VARIABLES)
|
234
|
+
# define BOOST_CONTAINER_CONSTANT_VAR BOOST_INLINE_CONSTEXPR
|
235
|
+
#else
|
236
|
+
# define BOOST_CONTAINER_CONSTANT_VAR static BOOST_CONSTEXPR_OR_CONST
|
237
|
+
#endif
|
238
|
+
|
239
|
+
#if defined(__GNUC__) && ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40600)
|
240
|
+
#define BOOST_CONTAINER_GCC_COMPATIBLE_HAS_DIAGNOSTIC_IGNORED
|
241
|
+
#elif defined(__clang__)
|
242
|
+
#define BOOST_CONTAINER_GCC_COMPATIBLE_HAS_DIAGNOSTIC_IGNORED
|
243
|
+
#endif
|
244
|
+
|
233
245
|
#endif //#ifndef BOOST_CONTAINER_DETAIL_WORKAROUND_HPP
|