passenger 5.1.4 → 5.1.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.editorconfig +9 -0
- data/CHANGELOG +9 -0
- data/build/cxx_tests.rb +11 -1
- data/build/documentation.rb +0 -32
- data/build/support/cxx_dependency_map.rb +602 -2
- data/build/test_basics.rb +3 -3
- data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +48 -0
- data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +33 -0
- data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +25 -0
- data/dev/ci/README.md +121 -0
- data/dev/ci/lib/functions.sh +129 -0
- data/dev/ci/lib/set-container-envvars.sh +46 -0
- data/dev/ci/lib/setup-container.sh +43 -0
- data/dev/ci/run-tests-natively +24 -0
- data/dev/ci/run-tests-with-docker +42 -0
- data/dev/ci/scripts/debug-console-wrapper.sh +27 -0
- data/dev/ci/scripts/docker-entrypoint-stage2.sh +17 -0
- data/dev/ci/scripts/docker-entrypoint.sh +17 -0
- data/dev/ci/scripts/inituidgid +17 -0
- data/dev/ci/scripts/run-tests-natively-stage2.sh +17 -0
- data/dev/ci/scripts/setup-host-natively.sh +11 -0
- data/dev/ci/setup-host +50 -0
- data/dev/ci/tests/apache2/run +6 -0
- data/dev/ci/tests/apache2/setup +4 -0
- data/dev/ci/tests/cxx/run +9 -0
- data/dev/ci/tests/cxx/setup +4 -0
- data/dev/ci/tests/nginx-dynamic/run +20 -0
- data/dev/ci/tests/nginx-dynamic/setup +4 -0
- data/dev/ci/tests/nginx/run +5 -0
- data/dev/ci/tests/nginx/setup +4 -0
- data/dev/ci/tests/nodejs/run +4 -0
- data/dev/ci/tests/nodejs/setup +4 -0
- data/dev/ci/tests/ruby/run +4 -0
- data/dev/ci/tests/ruby/setup +4 -0
- data/dev/ci/tests/source-packaging/run +4 -0
- data/dev/ci/tests/source-packaging/setup +4 -0
- data/dev/ci/tests/standalone/run +4 -0
- data/dev/ci/tests/standalone/setup +4 -0
- data/dev/copy_boost_headers +8 -2
- data/src/agent/Core/ApiServer.h +11 -5
- data/src/agent/Core/Controller.h +12 -46
- data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
- data/src/agent/Core/Controller/Config.h +369 -0
- data/src/agent/Core/Controller/ForwardResponse.cpp +4 -4
- data/src/agent/Core/Controller/Hooks.cpp +15 -3
- data/src/agent/Core/Controller/Implementation.cpp +1 -1
- data/src/agent/Core/Controller/InitRequest.cpp +28 -39
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +25 -60
- data/src/agent/Core/Controller/InternalUtils.cpp +0 -16
- data/src/agent/Core/Controller/Miscellaneous.cpp +0 -17
- data/src/agent/Core/Controller/Request.h +2 -0
- data/src/agent/Core/Controller/SendRequest.cpp +4 -4
- data/src/agent/Core/Controller/{StateInspectionAndConfiguration.cpp → StateInspection.cpp} +0 -22
- data/src/agent/Core/Controller/TurboCaching.h +11 -10
- data/src/agent/Core/CoreMain.cpp +16 -6
- data/src/agent/Core/ResponseCache.h +3 -3
- data/src/agent/Core/SpawningKit/SmartSpawner.h +9 -3
- data/src/agent/Core/SpawningKit/Spawner.h +7 -3
- data/src/agent/UstRouter/ApiServer.h +3 -2
- data/src/agent/UstRouter/Controller.h +66 -32
- data/src/agent/UstRouter/UstRouterMain.cpp +10 -2
- data/src/agent/Watchdog/ApiServer.h +3 -2
- data/src/agent/Watchdog/WatchdogMain.cpp +3 -1
- data/src/apache2_module/ConfigurationCommands.cpp +1 -1
- data/src/cxx_supportlib/ConfigKit/Common.h +125 -0
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +34 -0
- data/src/cxx_supportlib/ConfigKit/README.md +895 -0
- data/src/cxx_supportlib/ConfigKit/Schema.h +331 -0
- data/src/cxx_supportlib/ConfigKit/Store.h +385 -0
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +185 -0
- data/src/cxx_supportlib/ConfigKit/Utils.h +141 -0
- data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +81 -0
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/Crypto.cpp +2 -2
- data/src/cxx_supportlib/Logging.h +0 -35
- data/src/cxx_supportlib/ServerKit/HttpServer.h +35 -16
- data/src/cxx_supportlib/ServerKit/Server.h +65 -25
- data/src/cxx_supportlib/oxt/macros.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/replace.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/array.hpp +53 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_x86.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +28 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/arg.hpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +90 -18
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +35 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/compaq_cxx.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +29 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sgi_mipspro.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +44 -16
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/select_compiler_config.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +42 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +40 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +39 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/suffix.hpp +33 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -27
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +62 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +39 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +49 -32
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +175 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +223 -98
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +88 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +7 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +4 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +45 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +205 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +290 -181
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +24 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +320 -46
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +91 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +491 -120
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +399 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/deque.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/list.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/slist.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/small_vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/stable_vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/string.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +101 -20
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +19 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +117 -59
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +33 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +414 -70
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +134 -117
- data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +202 -99
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +8 -10
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +217 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +29 -27
- data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_names_put.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_calendar.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day_of_year.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +27 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/posix_time_zone.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/shared_ptr.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +25 -3
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +114 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +116 -142
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +57 -69
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/hash_float.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/extensions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash.hpp +27 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +99 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +35 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +37 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +209 -72
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +86 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algo_type.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +58 -45
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +27 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +27 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +9 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/has_member_function_callable_with.hpp +83 -57
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +70 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +22 -21
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +29 -28
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +33 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +19 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +21 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +103 -29
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +295 -211
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +20 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +22 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +36 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +43 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +96 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +102 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +48 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +20 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +36 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +167 -23
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +100 -46
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -27
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +30 -14
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +35 -36
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +6 -28
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +20 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +40 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +2437 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +637 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +139 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +155 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -116
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +227 -32
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +30 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +84 -80
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +14 -20
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +32 -33
- data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +49 -49
- data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +17 -16
- data/src/cxx_supportlib/vendor-modified/boost/mpl/print.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +197 -255
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +1059 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +116 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +253 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +196 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +372 -554
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +15 -7
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool_alloc.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +16 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/cat.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/to_list.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/const_iterator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +102 -87
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +45 -21
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +14 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +5 -14
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +116 -13
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1004 -159
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +4 -58
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +28 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +52 -144
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +120 -450
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +70 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/barrier.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/completion_latch.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_views.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +22 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +163 -55
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/launch.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_all.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_types.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/locks.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_functors.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +265 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +272 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/mp_defer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_assign.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_assign.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_copy.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_destructor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_abstract.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +21 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pod.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +40 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4986 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +1814 -1255
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -45
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1498 -1161
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -44
- data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/utility/compare_pointees.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +39 -22
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +690 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view_fwd.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/crash-watch.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -12
- metadata +77 -38
- data/dev/ci/inituidgid +0 -24
- data/dev/ci/run_jenkins.sh +0 -70
- data/dev/ci/run_travis.sh +0 -314
- data/doc/Design and Architecture.html +0 -2421
- data/doc/Design and Architecture.txt +0 -511
- data/doc/Security of user switching support.html +0 -1833
- data/doc/Users guide Apache.html +0 -3101
- data/doc/Users guide Apache.idmap.txt +0 -451
- data/doc/Users guide Apache.txt +0 -534
- data/doc/Users guide Nginx.html +0 -3026
- data/doc/Users guide Nginx.idmap.txt +0 -431
- data/doc/Users guide Nginx.txt +0 -451
- data/doc/Users guide Standalone.html +0 -2092
- data/doc/Users guide Standalone.idmap.txt +0 -137
- data/doc/Users guide Standalone.txt +0 -81
- data/doc/Users guide.html +0 -1606
- data/doc/Users guide.txt +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/address.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -22
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +0 -383
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_allocator.hpp +0 -318
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_count_impl.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_traits.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_utility.hpp +0 -214
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_if_array.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocate.hpp +0 -1128
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/buckets.hpp +0 -928
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/equivalent.hpp +0 -686
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/extract_key.hpp +0 -188
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/table.hpp +0 -873
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unique.hpp +0 -628
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/util.hpp +0 -266
@@ -37,6 +37,9 @@ namespace intrusive {
|
|
37
37
|
template <class NodePtr>
|
38
38
|
struct insert_commit_data_t
|
39
39
|
{
|
40
|
+
BOOST_INTRUSIVE_FORCEINLINE insert_commit_data_t()
|
41
|
+
: link_left(false), node()
|
42
|
+
{}
|
40
43
|
bool link_left;
|
41
44
|
NodePtr node;
|
42
45
|
};
|
@@ -63,14 +66,16 @@ struct bstree_node_checker
|
|
63
66
|
struct return_type
|
64
67
|
: public base_checker_t::return_type
|
65
68
|
{
|
66
|
-
return_type()
|
69
|
+
BOOST_INTRUSIVE_FORCEINLINE return_type()
|
70
|
+
: min_key_node_ptr(const_node_ptr()), max_key_node_ptr(const_node_ptr()), node_count(0)
|
71
|
+
{}
|
67
72
|
|
68
73
|
const_node_ptr min_key_node_ptr;
|
69
74
|
const_node_ptr max_key_node_ptr;
|
70
75
|
size_t node_count;
|
71
76
|
};
|
72
77
|
|
73
|
-
bstree_node_checker(const NodePtrCompare& comp, ExtraChecker extra_checker)
|
78
|
+
BOOST_INTRUSIVE_FORCEINLINE bstree_node_checker(const NodePtrCompare& comp, ExtraChecker extra_checker)
|
74
79
|
: base_checker_t(extra_checker), comp_(comp)
|
75
80
|
{}
|
76
81
|
|
@@ -182,14 +187,14 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
182
187
|
template<class Disposer>
|
183
188
|
struct dispose_subtree_disposer
|
184
189
|
{
|
185
|
-
dispose_subtree_disposer(Disposer &disp, const node_ptr & subtree)
|
190
|
+
BOOST_INTRUSIVE_FORCEINLINE dispose_subtree_disposer(Disposer &disp, const node_ptr & subtree)
|
186
191
|
: disposer_(&disp), subtree_(subtree)
|
187
192
|
{}
|
188
193
|
|
189
|
-
void release()
|
194
|
+
BOOST_INTRUSIVE_FORCEINLINE void release()
|
190
195
|
{ disposer_ = 0; }
|
191
196
|
|
192
|
-
~dispose_subtree_disposer()
|
197
|
+
BOOST_INTRUSIVE_FORCEINLINE ~dispose_subtree_disposer()
|
193
198
|
{
|
194
199
|
if(disposer_){
|
195
200
|
dispose_subtree(subtree_, *disposer_);
|
@@ -209,7 +214,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
209
214
|
//! <b>Complexity</b>: Constant time.
|
210
215
|
//!
|
211
216
|
//! <b>Throws</b>: Nothing.
|
212
|
-
static node_ptr begin_node(const const_node_ptr & header)
|
217
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr begin_node(const const_node_ptr & header)
|
213
218
|
{ return node_traits::get_left(header); }
|
214
219
|
|
215
220
|
//! <b>Requires</b>: 'header' is the header node of a tree.
|
@@ -219,7 +224,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
219
224
|
//! <b>Complexity</b>: Constant time.
|
220
225
|
//!
|
221
226
|
//! <b>Throws</b>: Nothing.
|
222
|
-
static node_ptr end_node(const const_node_ptr & header)
|
227
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr end_node(const const_node_ptr & header)
|
223
228
|
{ return detail::uncast(header); }
|
224
229
|
|
225
230
|
//! <b>Requires</b>: 'header' is the header node of a tree.
|
@@ -229,7 +234,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
229
234
|
//! <b>Complexity</b>: Constant time.
|
230
235
|
//!
|
231
236
|
//! <b>Throws</b>: Nothing.
|
232
|
-
static node_ptr root_node(const const_node_ptr & header)
|
237
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr root_node(const const_node_ptr & header)
|
233
238
|
{
|
234
239
|
node_ptr p = node_traits::get_parent(header);
|
235
240
|
return p ? p : detail::uncast(header);
|
@@ -243,7 +248,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
243
248
|
//! <b>Complexity</b>: Constant time.
|
244
249
|
//!
|
245
250
|
//! <b>Throws</b>: Nothing.
|
246
|
-
static bool unique(const const_node_ptr & node)
|
251
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr & node)
|
247
252
|
{ return !NodeTraits::get_parent(node); }
|
248
253
|
|
249
254
|
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
@@ -443,7 +448,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
443
448
|
//! new_node is not equivalent to node_to_be_replaced according to the
|
444
449
|
//! ordering rules. This function is faster than erasing and inserting
|
445
450
|
//! the node, since no rebalancing and comparison is needed. Experimental function
|
446
|
-
static void replace_node(const node_ptr & node_to_be_replaced, const node_ptr & new_node)
|
451
|
+
BOOST_INTRUSIVE_FORCEINLINE static void replace_node(const node_ptr & node_to_be_replaced, const node_ptr & new_node)
|
447
452
|
{
|
448
453
|
if(node_to_be_replaced == new_node)
|
449
454
|
return;
|
@@ -554,7 +559,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
554
559
|
//! <b>Throws</b>: Nothing.
|
555
560
|
//!
|
556
561
|
//! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
|
557
|
-
static void init(const node_ptr & node)
|
562
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init(const node_ptr & node)
|
558
563
|
{
|
559
564
|
NodeTraits::set_parent(node, node_ptr());
|
560
565
|
NodeTraits::set_left(node, node_ptr());
|
@@ -566,7 +571,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
566
571
|
//! <b>Complexity</b>: Constant.
|
567
572
|
//!
|
568
573
|
//! <b>Throws</b>: Nothing.
|
569
|
-
static bool inited(const const_node_ptr & node)
|
574
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool inited(const const_node_ptr & node)
|
570
575
|
{
|
571
576
|
return !NodeTraits::get_parent(node) &&
|
572
577
|
!NodeTraits::get_left(node) &&
|
@@ -583,7 +588,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
583
588
|
//! <b>Throws</b>: Nothing.
|
584
589
|
//!
|
585
590
|
//! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
|
586
|
-
static void init_header(const node_ptr & header)
|
591
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init_header(const node_ptr & header)
|
587
592
|
{
|
588
593
|
NodeTraits::set_parent(header, node_ptr());
|
589
594
|
NodeTraits::set_left(header, header);
|
@@ -865,7 +870,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
865
870
|
//!
|
866
871
|
//! <b>Throws</b>: If "comp" throws.
|
867
872
|
template<class KeyType, class KeyNodePtrCompare>
|
868
|
-
static std::pair<node_ptr, node_ptr> equal_range
|
873
|
+
BOOST_INTRUSIVE_FORCEINLINE static std::pair<node_ptr, node_ptr> equal_range
|
869
874
|
(const const_node_ptr & header, const KeyType &key, KeyNodePtrCompare comp)
|
870
875
|
{
|
871
876
|
return bounded_range(header, key, key, comp, true, true);
|
@@ -909,7 +914,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
909
914
|
//!
|
910
915
|
//! <b>Throws</b>: If "comp" throws.
|
911
916
|
template<class KeyType, class KeyNodePtrCompare>
|
912
|
-
static node_ptr lower_bound
|
917
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr lower_bound
|
913
918
|
(const const_node_ptr & header, const KeyType &key, KeyNodePtrCompare comp)
|
914
919
|
{
|
915
920
|
return lower_bound_loop(NodeTraits::get_parent(header), detail::uncast(header), key, comp);
|
@@ -927,7 +932,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
927
932
|
//!
|
928
933
|
//! <b>Throws</b>: If "comp" throws.
|
929
934
|
template<class KeyType, class KeyNodePtrCompare>
|
930
|
-
static node_ptr upper_bound
|
935
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr upper_bound
|
931
936
|
(const const_node_ptr & header, const KeyType &key, KeyNodePtrCompare comp)
|
932
937
|
{
|
933
938
|
return upper_bound_loop(NodeTraits::get_parent(header), detail::uncast(header), key, comp);
|
@@ -950,7 +955,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
950
955
|
//! <b>Notes</b>: This function has only sense if a "insert_unique_check" has been
|
951
956
|
//! previously executed to fill "commit_data". No value should be inserted or
|
952
957
|
//! erased between the "insert_check" and "insert_commit" calls.
|
953
|
-
static void insert_unique_commit
|
958
|
+
BOOST_INTRUSIVE_FORCEINLINE static void insert_unique_commit
|
954
959
|
(const node_ptr & header, const node_ptr & new_value, const insert_commit_data &commit_data)
|
955
960
|
{ return insert_commit(header, new_value, commit_data); }
|
956
961
|
|
@@ -1311,12 +1316,49 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1311
1316
|
//! <b>Complexity</b>: Amortized constant time.
|
1312
1317
|
//!
|
1313
1318
|
//! <b>Throws</b>: Nothing.
|
1314
|
-
static void erase(const node_ptr & header, const node_ptr & z)
|
1319
|
+
BOOST_INTRUSIVE_FORCEINLINE static void erase(const node_ptr & header, const node_ptr & z)
|
1315
1320
|
{
|
1316
1321
|
data_for_rebalance ignored;
|
1317
1322
|
erase(header, z, ignored);
|
1318
1323
|
}
|
1319
1324
|
|
1325
|
+
//! <b>Requires</b>: header1 and header2 must be the headers of trees tree1 and tree2
|
1326
|
+
//! respectively, z a non-header node of tree1. NodePtrCompare is the comparison
|
1327
|
+
//! function of tree1..
|
1328
|
+
//!
|
1329
|
+
//! <b>Effects</b>: Transfers node "z" from tree1 to tree2 if tree1 does not contain
|
1330
|
+
//! a node that is equivalent to z.
|
1331
|
+
//!
|
1332
|
+
//! <b>Returns</b>: True if the node was trasferred, false otherwise.
|
1333
|
+
//!
|
1334
|
+
//! <b>Complexity</b>: Logarithmic.
|
1335
|
+
//!
|
1336
|
+
//! <b>Throws</b>: If the comparison throws.
|
1337
|
+
template<class NodePtrCompare>
|
1338
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool transfer_unique
|
1339
|
+
(const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z)
|
1340
|
+
{
|
1341
|
+
data_for_rebalance ignored;
|
1342
|
+
return transfer_unique(header1, comp, header2, z, ignored);
|
1343
|
+
}
|
1344
|
+
|
1345
|
+
//! <b>Requires</b>: header1 and header2 must be the headers of trees tree1 and tree2
|
1346
|
+
//! respectively, z a non-header node of tree1. NodePtrCompare is the comparison
|
1347
|
+
//! function of tree1..
|
1348
|
+
//!
|
1349
|
+
//! <b>Effects</b>: Transfers node "z" from tree1 to tree2.
|
1350
|
+
//!
|
1351
|
+
//! <b>Complexity</b>: Logarithmic.
|
1352
|
+
//!
|
1353
|
+
//! <b>Throws</b>: If the comparison throws.
|
1354
|
+
template<class NodePtrCompare>
|
1355
|
+
BOOST_INTRUSIVE_FORCEINLINE static void transfer_equal
|
1356
|
+
(const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z)
|
1357
|
+
{
|
1358
|
+
data_for_rebalance ignored;
|
1359
|
+
transfer_equal(header1, comp, header2, z, ignored);
|
1360
|
+
}
|
1361
|
+
|
1320
1362
|
//! <b>Requires</b>: node is a tree node but not the header.
|
1321
1363
|
//!
|
1322
1364
|
//! <b>Effects</b>: Unlinks the node and rebalances the tree.
|
@@ -1431,6 +1473,30 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1431
1473
|
}
|
1432
1474
|
|
1433
1475
|
protected:
|
1476
|
+
|
1477
|
+
template<class NodePtrCompare>
|
1478
|
+
static bool transfer_unique
|
1479
|
+
(const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z, data_for_rebalance &info)
|
1480
|
+
{
|
1481
|
+
insert_commit_data commit_data;
|
1482
|
+
bool const transferable = insert_unique_check(header1, z, comp, commit_data).second;
|
1483
|
+
if(transferable){
|
1484
|
+
erase(header2, z, info);
|
1485
|
+
insert_commit(header1, z, commit_data);
|
1486
|
+
}
|
1487
|
+
return transferable;
|
1488
|
+
}
|
1489
|
+
|
1490
|
+
template<class NodePtrCompare>
|
1491
|
+
static void transfer_equal
|
1492
|
+
(const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z, data_for_rebalance &info)
|
1493
|
+
{
|
1494
|
+
insert_commit_data commit_data;
|
1495
|
+
insert_equal_upper_bound_check(header1, z, comp, commit_data);
|
1496
|
+
erase(header2, z, info);
|
1497
|
+
insert_commit(header1, z, commit_data);
|
1498
|
+
}
|
1499
|
+
|
1434
1500
|
static void erase(const node_ptr & header, const node_ptr & z, data_for_rebalance &info)
|
1435
1501
|
{
|
1436
1502
|
node_ptr y(z);
|
@@ -1563,7 +1629,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1563
1629
|
//! <b>Complexity</b>: Constant.
|
1564
1630
|
//!
|
1565
1631
|
//! <b>Throws</b>: Nothing.
|
1566
|
-
static bool is_left_child(const node_ptr & p)
|
1632
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool is_left_child(const node_ptr & p)
|
1567
1633
|
{ return NodeTraits::get_left(NodeTraits::get_parent(p)) == p; }
|
1568
1634
|
|
1569
1635
|
//! <b>Requires</b>: p is a node of a tree.
|
@@ -1573,7 +1639,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
|
|
1573
1639
|
//! <b>Complexity</b>: Constant.
|
1574
1640
|
//!
|
1575
1641
|
//! <b>Throws</b>: Nothing.
|
1576
|
-
static bool is_right_child(const node_ptr & p)
|
1642
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool is_right_child(const node_ptr & p)
|
1577
1643
|
{ return NodeTraits::get_right(NodeTraits::get_parent(p)) == p; }
|
1578
1644
|
|
1579
1645
|
static void insert_before_check
|
@@ -67,7 +67,7 @@ class circular_list_algorithms
|
|
67
67
|
//! <b>Complexity</b>: Constant
|
68
68
|
//!
|
69
69
|
//! <b>Throws</b>: Nothing.
|
70
|
-
static void init(const node_ptr &this_node)
|
70
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init(const node_ptr &this_node)
|
71
71
|
{
|
72
72
|
const node_ptr null_node((node_ptr()));
|
73
73
|
NodeTraits::set_next(this_node, null_node);
|
@@ -80,7 +80,7 @@ class circular_list_algorithms
|
|
80
80
|
//! <b>Complexity</b>: Constant
|
81
81
|
//!
|
82
82
|
//! <b>Throws</b>: Nothing.
|
83
|
-
static bool inited(const const_node_ptr &this_node)
|
83
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool inited(const const_node_ptr &this_node)
|
84
84
|
{ return !NodeTraits::get_next(this_node); }
|
85
85
|
|
86
86
|
//! <b>Effects</b>: Constructs an empty list, making this_node the only
|
@@ -91,7 +91,7 @@ class circular_list_algorithms
|
|
91
91
|
//! <b>Complexity</b>: Constant
|
92
92
|
//!
|
93
93
|
//! <b>Throws</b>: Nothing.
|
94
|
-
static void init_header(const node_ptr &this_node)
|
94
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init_header(const node_ptr &this_node)
|
95
95
|
{
|
96
96
|
NodeTraits::set_next(this_node, this_node);
|
97
97
|
NodeTraits::set_previous(this_node, this_node);
|
@@ -106,7 +106,7 @@ class circular_list_algorithms
|
|
106
106
|
//! <b>Complexity</b>: Constant
|
107
107
|
//!
|
108
108
|
//! <b>Throws</b>: Nothing.
|
109
|
-
static bool unique(const const_node_ptr &this_node)
|
109
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr &this_node)
|
110
110
|
{
|
111
111
|
node_ptr next = NodeTraits::get_next(this_node);
|
112
112
|
return !next || next == this_node;
|
@@ -138,7 +138,7 @@ class circular_list_algorithms
|
|
138
138
|
//! <b>Complexity</b>: Constant
|
139
139
|
//!
|
140
140
|
//! <b>Throws</b>: Nothing.
|
141
|
-
static node_ptr unlink(const node_ptr &this_node)
|
141
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr unlink(const node_ptr &this_node)
|
142
142
|
{
|
143
143
|
node_ptr next(NodeTraits::get_next(this_node));
|
144
144
|
node_ptr prev(NodeTraits::get_previous(this_node));
|
@@ -154,7 +154,7 @@ class circular_list_algorithms
|
|
154
154
|
//! <b>Complexity</b>: Constant
|
155
155
|
//!
|
156
156
|
//! <b>Throws</b>: Nothing.
|
157
|
-
static void unlink(const node_ptr &b, const node_ptr &e)
|
157
|
+
BOOST_INTRUSIVE_FORCEINLINE static void unlink(const node_ptr &b, const node_ptr &e)
|
158
158
|
{
|
159
159
|
if (b != e) {
|
160
160
|
node_ptr prevb(NodeTraits::get_previous(b));
|
@@ -170,14 +170,14 @@ class circular_list_algorithms
|
|
170
170
|
//! <b>Complexity</b>: Constant
|
171
171
|
//!
|
172
172
|
//! <b>Throws</b>: Nothing.
|
173
|
-
static void link_before(const node_ptr &nxt_node, const node_ptr &this_node)
|
173
|
+
BOOST_INTRUSIVE_FORCEINLINE static void link_before(const node_ptr &nxt_node, const node_ptr &this_node)
|
174
174
|
{
|
175
175
|
node_ptr prev(NodeTraits::get_previous(nxt_node));
|
176
176
|
NodeTraits::set_previous(this_node, prev);
|
177
177
|
NodeTraits::set_next(this_node, nxt_node);
|
178
178
|
//nxt_node might be an alias for prev->next_
|
179
179
|
//so use it before NodeTraits::set_next(prev, ...)
|
180
|
-
//is called and the reference changes
|
180
|
+
//is called and the reference changes its value
|
181
181
|
NodeTraits::set_previous(nxt_node, this_node);
|
182
182
|
NodeTraits::set_next(prev, this_node);
|
183
183
|
}
|
@@ -189,7 +189,7 @@ class circular_list_algorithms
|
|
189
189
|
//! <b>Complexity</b>: Constant
|
190
190
|
//!
|
191
191
|
//! <b>Throws</b>: Nothing.
|
192
|
-
static void link_after(const node_ptr &prev_node, const node_ptr &this_node)
|
192
|
+
BOOST_INTRUSIVE_FORCEINLINE static void link_after(const node_ptr &prev_node, const node_ptr &this_node)
|
193
193
|
{
|
194
194
|
node_ptr next(NodeTraits::get_next(prev_node));
|
195
195
|
NodeTraits::set_previous(this_node, prev_node);
|
@@ -435,14 +435,14 @@ class circular_list_algorithms
|
|
435
435
|
}
|
436
436
|
|
437
437
|
private:
|
438
|
-
static void swap_prev(const node_ptr &this_node, const node_ptr &other_node)
|
438
|
+
BOOST_INTRUSIVE_FORCEINLINE static void swap_prev(const node_ptr &this_node, const node_ptr &other_node)
|
439
439
|
{
|
440
440
|
node_ptr temp(NodeTraits::get_previous(this_node));
|
441
441
|
NodeTraits::set_previous(this_node, NodeTraits::get_previous(other_node));
|
442
442
|
NodeTraits::set_previous(other_node, temp);
|
443
443
|
}
|
444
444
|
|
445
|
-
static void swap_next(const node_ptr &this_node, const node_ptr &other_node)
|
445
|
+
BOOST_INTRUSIVE_FORCEINLINE static void swap_next(const node_ptr &this_node, const node_ptr &other_node)
|
446
446
|
{
|
447
447
|
node_ptr temp(NodeTraits::get_next(this_node));
|
448
448
|
NodeTraits::set_next(this_node, NodeTraits::get_next(other_node));
|
@@ -141,7 +141,7 @@ class circular_slist_algorithms
|
|
141
141
|
//! <b>Complexity</b>: Constant
|
142
142
|
//!
|
143
143
|
//! <b>Throws</b>: Nothing.
|
144
|
-
static void init_header(const node_ptr &this_node)
|
144
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init_header(const node_ptr &this_node)
|
145
145
|
{ NodeTraits::set_next(this_node, this_node); }
|
146
146
|
|
147
147
|
//! <b>Requires</b>: this_node and prev_init_node must be in the same circular list.
|
@@ -153,7 +153,7 @@ class circular_slist_algorithms
|
|
153
153
|
//! <b>Complexity</b>: Linear to the number of elements between prev_init_node and this_node.
|
154
154
|
//!
|
155
155
|
//! <b>Throws</b>: Nothing.
|
156
|
-
static node_ptr get_previous_node(const node_ptr &prev_init_node, const node_ptr &this_node)
|
156
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_previous_node(const node_ptr &prev_init_node, const node_ptr &this_node)
|
157
157
|
{ return base_t::get_previous_node(prev_init_node, this_node); }
|
158
158
|
|
159
159
|
//! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
|
@@ -163,7 +163,7 @@ class circular_slist_algorithms
|
|
163
163
|
//! <b>Complexity</b>: Linear to the number of elements in the circular list.
|
164
164
|
//!
|
165
165
|
//! <b>Throws</b>: Nothing.
|
166
|
-
static node_ptr get_previous_node(const node_ptr & this_node)
|
166
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_previous_node(const node_ptr & this_node)
|
167
167
|
{ return base_t::get_previous_node(this_node, this_node); }
|
168
168
|
|
169
169
|
//! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
|
@@ -173,7 +173,7 @@ class circular_slist_algorithms
|
|
173
173
|
//! <b>Complexity</b>: Linear to the number of elements in the circular list.
|
174
174
|
//!
|
175
175
|
//! <b>Throws</b>: Nothing.
|
176
|
-
static node_ptr get_previous_previous_node(const node_ptr & this_node)
|
176
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_previous_previous_node(const node_ptr & this_node)
|
177
177
|
{ return get_previous_previous_node(this_node, this_node); }
|
178
178
|
|
179
179
|
//! <b>Requires</b>: this_node and p must be in the same circular list.
|
@@ -223,7 +223,7 @@ class circular_slist_algorithms
|
|
223
223
|
//! <b>Complexity</b>: Linear to the number of elements in the circular list
|
224
224
|
//!
|
225
225
|
//! <b>Throws</b>: Nothing.
|
226
|
-
static void unlink(const node_ptr & this_node)
|
226
|
+
BOOST_INTRUSIVE_FORCEINLINE static void unlink(const node_ptr & this_node)
|
227
227
|
{
|
228
228
|
if(NodeTraits::get_next(this_node))
|
229
229
|
base_t::unlink_after(get_previous_node(this_node));
|
@@ -236,7 +236,7 @@ class circular_slist_algorithms
|
|
236
236
|
//! <b>Complexity</b>: Linear to the number of elements in the circular list.
|
237
237
|
//!
|
238
238
|
//! <b>Throws</b>: Nothing.
|
239
|
-
static void link_before (const node_ptr & nxt_node, const node_ptr & this_node)
|
239
|
+
BOOST_INTRUSIVE_FORCEINLINE static void link_before (const node_ptr & nxt_node, const node_ptr & this_node)
|
240
240
|
{ base_t::link_after(get_previous_node(nxt_node), this_node); }
|
241
241
|
|
242
242
|
//! <b>Requires</b>: this_node and other_node must be nodes inserted
|
@@ -35,7 +35,10 @@ enum algo_types
|
|
35
35
|
AvlTreeAlgorithms,
|
36
36
|
SgTreeAlgorithms,
|
37
37
|
SplayTreeAlgorithms,
|
38
|
-
TreapAlgorithms
|
38
|
+
TreapAlgorithms,
|
39
|
+
UnorderedAlgorithms,
|
40
|
+
UnorderedCircularSlistAlgorithms,
|
41
|
+
AnyAlgorithm
|
39
42
|
};
|
40
43
|
|
41
44
|
template<algo_types AlgoType, class NodeTraits>
|
@@ -21,9 +21,11 @@
|
|
21
21
|
# pragma once
|
22
22
|
#endif
|
23
23
|
|
24
|
+
#include <boost/intrusive/detail/workaround.hpp>
|
24
25
|
#include <boost/intrusive/pointer_rebind.hpp>
|
25
|
-
#include <cstddef>
|
26
26
|
#include <boost/intrusive/detail/mpl.hpp>
|
27
|
+
#include <boost/intrusive/detail/algo_type.hpp>
|
28
|
+
#include <cstddef>
|
27
29
|
|
28
30
|
namespace boost {
|
29
31
|
namespace intrusive {
|
@@ -47,16 +49,16 @@ struct any_list_node_traits
|
|
47
49
|
typedef typename node::node_ptr node_ptr;
|
48
50
|
typedef typename node::const_node_ptr const_node_ptr;
|
49
51
|
|
50
|
-
static node_ptr get_next(const const_node_ptr & n)
|
52
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_next(const const_node_ptr & n)
|
51
53
|
{ return n->node_ptr_1; }
|
52
54
|
|
53
|
-
static void set_next(const node_ptr & n, const node_ptr & next)
|
55
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_next(const node_ptr & n, const node_ptr & next)
|
54
56
|
{ n->node_ptr_1 = next; }
|
55
57
|
|
56
|
-
static node_ptr get_previous(const const_node_ptr & n)
|
58
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_previous(const const_node_ptr & n)
|
57
59
|
{ return n->node_ptr_2; }
|
58
60
|
|
59
|
-
static void set_previous(const node_ptr & n, const node_ptr & prev)
|
61
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_previous(const node_ptr & n, const node_ptr & prev)
|
60
62
|
{ n->node_ptr_2 = prev; }
|
61
63
|
};
|
62
64
|
|
@@ -68,10 +70,10 @@ struct any_slist_node_traits
|
|
68
70
|
typedef typename node::node_ptr node_ptr;
|
69
71
|
typedef typename node::const_node_ptr const_node_ptr;
|
70
72
|
|
71
|
-
static node_ptr get_next(const const_node_ptr & n)
|
73
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_next(const const_node_ptr & n)
|
72
74
|
{ return n->node_ptr_1; }
|
73
75
|
|
74
|
-
static void set_next(const node_ptr & n, const node_ptr & next)
|
76
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_next(const node_ptr & n, const node_ptr & next)
|
75
77
|
{ n->node_ptr_1 = next; }
|
76
78
|
};
|
77
79
|
|
@@ -88,22 +90,22 @@ struct any_unordered_node_traits
|
|
88
90
|
static const bool store_hash = true;
|
89
91
|
static const bool optimize_multikey = true;
|
90
92
|
|
91
|
-
static node_ptr get_next(const const_node_ptr & n)
|
93
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_next(const const_node_ptr & n)
|
92
94
|
{ return n->node_ptr_1; }
|
93
95
|
|
94
|
-
static void set_next(const node_ptr & n, const node_ptr & next)
|
96
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_next(const node_ptr & n, const node_ptr & next)
|
95
97
|
{ n->node_ptr_1 = next; }
|
96
98
|
|
97
|
-
static node_ptr get_prev_in_group(const const_node_ptr & n)
|
99
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_prev_in_group(const const_node_ptr & n)
|
98
100
|
{ return n->node_ptr_2; }
|
99
101
|
|
100
|
-
static void set_prev_in_group(const node_ptr & n, const node_ptr & prev)
|
102
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_prev_in_group(const node_ptr & n, const node_ptr & prev)
|
101
103
|
{ n->node_ptr_2 = prev; }
|
102
104
|
|
103
|
-
static std::size_t get_hash(const const_node_ptr & n)
|
105
|
+
BOOST_INTRUSIVE_FORCEINLINE static std::size_t get_hash(const const_node_ptr & n)
|
104
106
|
{ return n->size_t_1; }
|
105
107
|
|
106
|
-
static void set_hash(const node_ptr & n, std::size_t h)
|
108
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_hash(const node_ptr & n, std::size_t h)
|
107
109
|
{ n->size_t_1 = h; }
|
108
110
|
};
|
109
111
|
|
@@ -117,34 +119,34 @@ struct any_rbtree_node_traits
|
|
117
119
|
|
118
120
|
typedef std::size_t color;
|
119
121
|
|
120
|
-
static node_ptr get_parent(const const_node_ptr & n)
|
122
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_parent(const const_node_ptr & n)
|
121
123
|
{ return n->node_ptr_1; }
|
122
124
|
|
123
|
-
static void set_parent(const node_ptr & n, const node_ptr & p)
|
125
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_parent(const node_ptr & n, const node_ptr & p)
|
124
126
|
{ n->node_ptr_1 = p; }
|
125
127
|
|
126
|
-
static node_ptr get_left(const const_node_ptr & n)
|
128
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_left(const const_node_ptr & n)
|
127
129
|
{ return n->node_ptr_2; }
|
128
130
|
|
129
|
-
static void set_left(const node_ptr & n, const node_ptr & l)
|
131
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_left(const node_ptr & n, const node_ptr & l)
|
130
132
|
{ n->node_ptr_2 = l; }
|
131
133
|
|
132
|
-
static node_ptr get_right(const const_node_ptr & n)
|
134
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_right(const const_node_ptr & n)
|
133
135
|
{ return n->node_ptr_3; }
|
134
136
|
|
135
|
-
static void set_right(const node_ptr & n, const node_ptr & r)
|
137
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_right(const node_ptr & n, const node_ptr & r)
|
136
138
|
{ n->node_ptr_3 = r; }
|
137
139
|
|
138
|
-
static color get_color(const const_node_ptr & n)
|
140
|
+
BOOST_INTRUSIVE_FORCEINLINE static color get_color(const const_node_ptr & n)
|
139
141
|
{ return n->size_t_1; }
|
140
142
|
|
141
|
-
static void set_color(const node_ptr & n, color c)
|
143
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_color(const node_ptr & n, color c)
|
142
144
|
{ n->size_t_1 = c; }
|
143
145
|
|
144
|
-
static color black()
|
146
|
+
BOOST_INTRUSIVE_FORCEINLINE static color black()
|
145
147
|
{ return 0u; }
|
146
148
|
|
147
|
-
static color red()
|
149
|
+
BOOST_INTRUSIVE_FORCEINLINE static color red()
|
148
150
|
{ return 1u; }
|
149
151
|
};
|
150
152
|
|
@@ -158,37 +160,37 @@ struct any_avltree_node_traits
|
|
158
160
|
|
159
161
|
typedef std::size_t balance;
|
160
162
|
|
161
|
-
static node_ptr get_parent(const const_node_ptr & n)
|
163
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_parent(const const_node_ptr & n)
|
162
164
|
{ return n->node_ptr_1; }
|
163
165
|
|
164
|
-
static void set_parent(const node_ptr & n, const node_ptr & p)
|
166
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_parent(const node_ptr & n, const node_ptr & p)
|
165
167
|
{ n->node_ptr_1 = p; }
|
166
168
|
|
167
|
-
static node_ptr get_left(const const_node_ptr & n)
|
169
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_left(const const_node_ptr & n)
|
168
170
|
{ return n->node_ptr_2; }
|
169
171
|
|
170
|
-
static void set_left(const node_ptr & n, const node_ptr & l)
|
172
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_left(const node_ptr & n, const node_ptr & l)
|
171
173
|
{ n->node_ptr_2 = l; }
|
172
174
|
|
173
|
-
static node_ptr get_right(const const_node_ptr & n)
|
175
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_right(const const_node_ptr & n)
|
174
176
|
{ return n->node_ptr_3; }
|
175
177
|
|
176
|
-
static void set_right(const node_ptr & n, const node_ptr & r)
|
178
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_right(const node_ptr & n, const node_ptr & r)
|
177
179
|
{ n->node_ptr_3 = r; }
|
178
180
|
|
179
|
-
static balance get_balance(const const_node_ptr & n)
|
181
|
+
BOOST_INTRUSIVE_FORCEINLINE static balance get_balance(const const_node_ptr & n)
|
180
182
|
{ return n->size_t_1; }
|
181
183
|
|
182
|
-
static void set_balance(const node_ptr & n, balance b)
|
184
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_balance(const node_ptr & n, balance b)
|
183
185
|
{ n->size_t_1 = b; }
|
184
186
|
|
185
|
-
static balance negative()
|
187
|
+
BOOST_INTRUSIVE_FORCEINLINE static balance negative()
|
186
188
|
{ return 0u; }
|
187
189
|
|
188
|
-
static balance zero()
|
190
|
+
BOOST_INTRUSIVE_FORCEINLINE static balance zero()
|
189
191
|
{ return 1u; }
|
190
192
|
|
191
|
-
static balance positive()
|
193
|
+
BOOST_INTRUSIVE_FORCEINLINE static balance positive()
|
192
194
|
{ return 2u; }
|
193
195
|
};
|
194
196
|
|
@@ -200,22 +202,22 @@ struct any_tree_node_traits
|
|
200
202
|
typedef typename node::node_ptr node_ptr;
|
201
203
|
typedef typename node::const_node_ptr const_node_ptr;
|
202
204
|
|
203
|
-
static node_ptr get_parent(const const_node_ptr & n)
|
205
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_parent(const const_node_ptr & n)
|
204
206
|
{ return n->node_ptr_1; }
|
205
207
|
|
206
|
-
static void set_parent(const node_ptr & n, const node_ptr & p)
|
208
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_parent(const node_ptr & n, const node_ptr & p)
|
207
209
|
{ n->node_ptr_1 = p; }
|
208
210
|
|
209
|
-
static node_ptr get_left(const const_node_ptr & n)
|
211
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_left(const const_node_ptr & n)
|
210
212
|
{ return n->node_ptr_2; }
|
211
213
|
|
212
|
-
static void set_left(const node_ptr & n, const node_ptr & l)
|
214
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_left(const node_ptr & n, const node_ptr & l)
|
213
215
|
{ n->node_ptr_2 = l; }
|
214
216
|
|
215
|
-
static node_ptr get_right(const const_node_ptr & n)
|
217
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_right(const const_node_ptr & n)
|
216
218
|
{ return n->node_ptr_3; }
|
217
219
|
|
218
|
-
static void set_right(const node_ptr & n, const node_ptr & r)
|
220
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_right(const node_ptr & n, const node_ptr & r)
|
219
221
|
{ n->node_ptr_3 = r; }
|
220
222
|
};
|
221
223
|
|
@@ -250,19 +252,19 @@ class any_algorithms
|
|
250
252
|
//! <b>Throws</b>: Nothing.
|
251
253
|
//!
|
252
254
|
//! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
|
253
|
-
static void init(const node_ptr & node)
|
254
|
-
{ node->node_ptr_1 =
|
255
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init(const node_ptr & node)
|
256
|
+
{ node->node_ptr_1 = node_ptr(); };
|
255
257
|
|
256
258
|
//! <b>Effects</b>: Returns true if node is in the same state as if called init(node)
|
257
259
|
//!
|
258
260
|
//! <b>Complexity</b>: Constant.
|
259
261
|
//!
|
260
262
|
//! <b>Throws</b>: Nothing.
|
261
|
-
static bool inited(const const_node_ptr & node)
|
263
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool inited(const const_node_ptr & node)
|
262
264
|
{ return !node->node_ptr_1; };
|
263
265
|
|
264
|
-
static bool unique(const const_node_ptr & node)
|
265
|
-
{ return
|
266
|
+
BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr & node)
|
267
|
+
{ return !node->node_ptr_1; }
|
266
268
|
|
267
269
|
static void unlink(const node_ptr &)
|
268
270
|
{
|
@@ -278,6 +280,17 @@ class any_algorithms
|
|
278
280
|
}
|
279
281
|
};
|
280
282
|
|
283
|
+
///@cond
|
284
|
+
|
285
|
+
template<class NodeTraits>
|
286
|
+
struct get_algo<AnyAlgorithm, NodeTraits>
|
287
|
+
{
|
288
|
+
typedef typename pointer_rebind<typename NodeTraits::node_ptr, void>::type void_pointer;
|
289
|
+
typedef any_algorithms<void_pointer> type;
|
290
|
+
};
|
291
|
+
|
292
|
+
///@endcond
|
293
|
+
|
281
294
|
} //namespace intrusive
|
282
295
|
} //namespace boost
|
283
296
|
|