passenger 6.0.1 → 6.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +145 -18
- data/CONTRIBUTORS +6 -0
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-status +15 -0
- data/build/misc.rb +3 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +56 -3
- data/dev/copy_boost_headers +1 -0
- data/package.json +1 -1
- data/passenger.gemspec +9 -1
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
- data/resources/templates/standalone/http.erb +2 -0
- data/resources/templates/standalone/server.erb +1 -0
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
- data/src/agent/Core/ApplicationPool/Options.h +10 -0
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
- data/src/agent/Core/Config.h +14 -1
- data/src/agent/Core/Controller.h +1 -0
- data/src/agent/Core/Controller/Config.h +5 -1
- data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
- data/src/agent/Core/Controller/InitRequest.cpp +3 -0
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
- data/src/agent/Core/CoreMain.cpp +2 -1
- data/src/agent/Core/OptionParser.h +3 -0
- data/src/agent/Core/SpawningKit/Context.h +1 -0
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
- data/src/agent/Watchdog/Config.h +15 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
- data/src/apache2_module/Hooks.cpp +6 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
- data/src/cxx_supportlib/Constants.h +2 -1
- data/src/cxx_supportlib/LoggingKit/Config.h +2 -0
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +15 -9
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +20 -19
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
- data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
- 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 +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
- data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/prespawn +1 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +26 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
- data/src/nginx_module/Configuration.c +6 -2
- data/src/nginx_module/ContentHandler.c +5 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +28 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
- data/src/nginx_module/ngx_http_passenger_module.c +2 -0
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
- data/src/ruby_native_extension/extconf.rb +7 -0
- data/src/ruby_supportlib/phusion_passenger.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +8 -0
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +23 -0
- data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -3
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +37 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
- metadata +42 -8
- data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
- data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
@@ -5,21 +5,24 @@
|
|
5
5
|
|
6
6
|
#ifndef UUID_274DA366004E11DCB1DDFE2E56D89593
|
7
7
|
#define UUID_274DA366004E11DCB1DDFE2E56D89593
|
8
|
-
|
9
|
-
#
|
10
|
-
#endif
|
11
|
-
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
|
12
|
-
#pragma warning(push,1)
|
13
|
-
#endif
|
8
|
+
|
9
|
+
#include <boost/config.hpp>
|
14
10
|
|
15
11
|
#ifdef BOOST_EXCEPTION_MINI_BOOST
|
16
12
|
#include <memory>
|
17
13
|
namespace boost { namespace exception_detail { using std::shared_ptr; } }
|
18
14
|
#else
|
19
|
-
namespace boost { template <class T> class shared_ptr; }
|
15
|
+
namespace boost { template <class T> class shared_ptr; }
|
20
16
|
namespace boost { namespace exception_detail { using boost::shared_ptr; } }
|
21
17
|
#endif
|
22
18
|
|
19
|
+
#if defined(__GNUC__) && (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
|
20
|
+
#pragma GCC system_header
|
21
|
+
#endif
|
22
|
+
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
|
23
|
+
#pragma warning(push,1)
|
24
|
+
#endif
|
25
|
+
|
23
26
|
namespace
|
24
27
|
boost
|
25
28
|
{
|
@@ -140,17 +143,9 @@ boost
|
|
140
143
|
}
|
141
144
|
};
|
142
145
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
# endif
|
147
|
-
#endif
|
148
|
-
class exception;
|
149
|
-
#if defined(__GNUC__)
|
150
|
-
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
151
|
-
# pragma GCC visibility pop
|
152
|
-
# endif
|
153
|
-
#endif
|
146
|
+
class
|
147
|
+
BOOST_SYMBOL_VISIBLE
|
148
|
+
exception;
|
154
149
|
|
155
150
|
namespace
|
156
151
|
exception_detail
|
@@ -216,12 +211,8 @@ boost
|
|
216
211
|
E const & set_info( E const &, throw_line const & );
|
217
212
|
}
|
218
213
|
|
219
|
-
#if defined(__GNUC__)
|
220
|
-
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
221
|
-
# pragma GCC visibility push (default)
|
222
|
-
# endif
|
223
|
-
#endif
|
224
214
|
class
|
215
|
+
BOOST_SYMBOL_VISIBLE
|
225
216
|
exception
|
226
217
|
{
|
227
218
|
//<N3757>
|
@@ -293,11 +284,6 @@ boost
|
|
293
284
|
mutable char const * throw_file_;
|
294
285
|
mutable int throw_line_;
|
295
286
|
};
|
296
|
-
#if defined(__GNUC__)
|
297
|
-
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
298
|
-
# pragma GCC visibility pop
|
299
|
-
# endif
|
300
|
-
#endif
|
301
287
|
|
302
288
|
inline
|
303
289
|
exception::
|
@@ -338,13 +324,9 @@ boost
|
|
338
324
|
namespace
|
339
325
|
exception_detail
|
340
326
|
{
|
341
|
-
#if defined(__GNUC__)
|
342
|
-
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
343
|
-
# pragma GCC visibility push (default)
|
344
|
-
# endif
|
345
|
-
#endif
|
346
327
|
template <class T>
|
347
328
|
struct
|
329
|
+
BOOST_SYMBOL_VISIBLE
|
348
330
|
error_info_injector:
|
349
331
|
public T,
|
350
332
|
public exception
|
@@ -359,11 +341,6 @@ boost
|
|
359
341
|
{
|
360
342
|
}
|
361
343
|
};
|
362
|
-
#if defined(__GNUC__)
|
363
|
-
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
364
|
-
# pragma GCC visibility pop
|
365
|
-
# endif
|
366
|
-
#endif
|
367
344
|
|
368
345
|
struct large_size { char c[256]; };
|
369
346
|
large_size dispatch_boost_exception( exception const * );
|
@@ -411,12 +388,8 @@ boost
|
|
411
388
|
namespace
|
412
389
|
exception_detail
|
413
390
|
{
|
414
|
-
#if defined(__GNUC__)
|
415
|
-
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
416
|
-
# pragma GCC visibility push (default)
|
417
|
-
# endif
|
418
|
-
#endif
|
419
391
|
class
|
392
|
+
BOOST_SYMBOL_VISIBLE
|
420
393
|
clone_base
|
421
394
|
{
|
422
395
|
public:
|
@@ -429,11 +402,6 @@ boost
|
|
429
402
|
{
|
430
403
|
}
|
431
404
|
};
|
432
|
-
#if defined(__GNUC__)
|
433
|
-
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
434
|
-
# pragma GCC visibility pop
|
435
|
-
# endif
|
436
|
-
#endif
|
437
405
|
|
438
406
|
inline
|
439
407
|
void
|
@@ -454,13 +422,9 @@ boost
|
|
454
422
|
{
|
455
423
|
}
|
456
424
|
|
457
|
-
#if defined(__GNUC__)
|
458
|
-
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
459
|
-
# pragma GCC visibility push (default)
|
460
|
-
# endif
|
461
|
-
#endif
|
462
425
|
template <class T>
|
463
426
|
class
|
427
|
+
BOOST_SYMBOL_VISIBLE
|
464
428
|
clone_impl:
|
465
429
|
public T,
|
466
430
|
public virtual clone_base
|
@@ -500,11 +464,6 @@ boost
|
|
500
464
|
}
|
501
465
|
};
|
502
466
|
}
|
503
|
-
#if defined(__GNUC__)
|
504
|
-
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
505
|
-
# pragma GCC visibility pop
|
506
|
-
# endif
|
507
|
-
#endif
|
508
467
|
|
509
468
|
template <class T>
|
510
469
|
inline
|
@@ -513,6 +472,51 @@ boost
|
|
513
472
|
{
|
514
473
|
return exception_detail::clone_impl<T>(x);
|
515
474
|
}
|
475
|
+
|
476
|
+
template <class T>
|
477
|
+
struct
|
478
|
+
BOOST_SYMBOL_VISIBLE
|
479
|
+
wrapexcept:
|
480
|
+
public exception_detail::clone_impl<typename exception_detail::enable_error_info_return_type<T>::type>
|
481
|
+
{
|
482
|
+
typedef exception_detail::clone_impl<typename exception_detail::enable_error_info_return_type<T>::type> base_type;
|
483
|
+
public:
|
484
|
+
explicit
|
485
|
+
wrapexcept( typename exception_detail::enable_error_info_return_type<T>::type const & x ):
|
486
|
+
base_type( x )
|
487
|
+
{
|
488
|
+
}
|
489
|
+
|
490
|
+
~wrapexcept() throw()
|
491
|
+
{
|
492
|
+
}
|
493
|
+
};
|
494
|
+
|
495
|
+
namespace
|
496
|
+
exception_detail
|
497
|
+
{
|
498
|
+
template <class T>
|
499
|
+
struct
|
500
|
+
remove_error_info_injector
|
501
|
+
{
|
502
|
+
typedef T type;
|
503
|
+
};
|
504
|
+
|
505
|
+
template <class T>
|
506
|
+
struct
|
507
|
+
remove_error_info_injector< error_info_injector<T> >
|
508
|
+
{
|
509
|
+
typedef T type;
|
510
|
+
};
|
511
|
+
|
512
|
+
template <class T>
|
513
|
+
inline
|
514
|
+
wrapexcept<typename remove_error_info_injector<T>::type>
|
515
|
+
enable_both( T const & x )
|
516
|
+
{
|
517
|
+
return wrapexcept<typename remove_error_info_injector<T>::type>( enable_error_info( x ) );
|
518
|
+
}
|
519
|
+
}
|
516
520
|
}
|
517
521
|
|
518
522
|
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
|
@@ -23,7 +23,7 @@
|
|
23
23
|
#include <functional> // unary_function, binary_function
|
24
24
|
|
25
25
|
#include <boost/preprocessor/iterate.hpp>
|
26
|
-
#include <boost/
|
26
|
+
#include <boost/config/workaround.hpp>
|
27
27
|
|
28
28
|
// Include the prologue here so that the use of file-level iteration
|
29
29
|
// in anything that may be included by function_template.hpp doesn't break
|
@@ -26,13 +26,13 @@
|
|
26
26
|
#include <boost/type_traits/is_volatile.hpp>
|
27
27
|
#include <boost/type_traits/composite_traits.hpp>
|
28
28
|
#include <boost/ref.hpp>
|
29
|
-
#include <boost/
|
30
|
-
#include <boost/
|
29
|
+
#include <boost/type_traits/conditional.hpp>
|
30
|
+
#include <boost/config/workaround.hpp>
|
31
31
|
#include <boost/type_traits/alignment_of.hpp>
|
32
32
|
#ifndef BOOST_NO_SFINAE
|
33
|
-
#
|
33
|
+
#include <boost/type_traits/enable_if.hpp>
|
34
34
|
#else
|
35
|
-
#
|
35
|
+
#include <boost/type_traits/integral_constant.hpp>
|
36
36
|
#endif
|
37
37
|
#include <boost/function_equal.hpp>
|
38
38
|
#include <boost/function/function_fwd.hpp>
|
@@ -50,7 +50,7 @@
|
|
50
50
|
#endif // __ICL etc
|
51
51
|
|
52
52
|
# define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \
|
53
|
-
typename ::boost::
|
53
|
+
typename ::boost::enable_if_< \
|
54
54
|
!(::boost::is_integral<Functor>::value), \
|
55
55
|
Type>::type
|
56
56
|
|
@@ -101,7 +101,7 @@ namespace boost {
|
|
101
101
|
} obj_ref;
|
102
102
|
};
|
103
103
|
|
104
|
-
union function_buffer
|
104
|
+
union BOOST_SYMBOL_VISIBLE function_buffer
|
105
105
|
{
|
106
106
|
// Type-specific union members
|
107
107
|
mutable function_buffer_members members;
|
@@ -152,15 +152,15 @@ namespace boost {
|
|
152
152
|
template<typename F>
|
153
153
|
class get_function_tag
|
154
154
|
{
|
155
|
-
typedef typename
|
155
|
+
typedef typename conditional<(is_pointer<F>::value),
|
156
156
|
function_ptr_tag,
|
157
157
|
function_obj_tag>::type ptr_or_obj_tag;
|
158
158
|
|
159
|
-
typedef typename
|
159
|
+
typedef typename conditional<(is_member_pointer<F>::value),
|
160
160
|
member_ptr_tag,
|
161
161
|
ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag;
|
162
162
|
|
163
|
-
typedef typename
|
163
|
+
typedef typename conditional<(is_reference_wrapper<F>::value),
|
164
164
|
function_obj_ref_tag,
|
165
165
|
ptr_or_obj_or_mem_tag>::type or_ref_tag;
|
166
166
|
|
@@ -328,7 +328,7 @@ namespace boost {
|
|
328
328
|
// Function objects that fit in the small-object buffer.
|
329
329
|
static inline void
|
330
330
|
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
331
|
-
functor_manager_operation_type op,
|
331
|
+
functor_manager_operation_type op, true_type)
|
332
332
|
{
|
333
333
|
functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
|
334
334
|
}
|
@@ -336,7 +336,7 @@ namespace boost {
|
|
336
336
|
// Function objects that require heap allocation
|
337
337
|
static inline void
|
338
338
|
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
339
|
-
functor_manager_operation_type op,
|
339
|
+
functor_manager_operation_type op, false_type)
|
340
340
|
{
|
341
341
|
if (op == clone_functor_tag) {
|
342
342
|
// Clone the functor
|
@@ -377,7 +377,7 @@ namespace boost {
|
|
377
377
|
functor_manager_operation_type op, function_obj_tag)
|
378
378
|
{
|
379
379
|
manager(in_buffer, out_buffer, op,
|
380
|
-
|
380
|
+
integral_constant<bool, (function_allows_small_object_optimization<functor_type>::value)>());
|
381
381
|
}
|
382
382
|
|
383
383
|
// For member pointers, we use the small-object optimization buffer.
|
@@ -385,7 +385,7 @@ namespace boost {
|
|
385
385
|
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
386
386
|
functor_manager_operation_type op, member_ptr_tag)
|
387
387
|
{
|
388
|
-
manager(in_buffer, out_buffer, op,
|
388
|
+
manager(in_buffer, out_buffer, op, true_type());
|
389
389
|
}
|
390
390
|
|
391
391
|
public:
|
@@ -427,7 +427,7 @@ namespace boost {
|
|
427
427
|
// Function objects that fit in the small-object buffer.
|
428
428
|
static inline void
|
429
429
|
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
430
|
-
functor_manager_operation_type op,
|
430
|
+
functor_manager_operation_type op, true_type)
|
431
431
|
{
|
432
432
|
functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
|
433
433
|
}
|
@@ -435,7 +435,7 @@ namespace boost {
|
|
435
435
|
// Function objects that require heap allocation
|
436
436
|
static inline void
|
437
437
|
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
438
|
-
functor_manager_operation_type op,
|
438
|
+
functor_manager_operation_type op, false_type)
|
439
439
|
{
|
440
440
|
typedef functor_wrapper<Functor,Allocator> functor_wrapper_type;
|
441
441
|
#if defined(BOOST_NO_CXX11_ALLOCATOR)
|
@@ -499,7 +499,7 @@ namespace boost {
|
|
499
499
|
functor_manager_operation_type op, function_obj_tag)
|
500
500
|
{
|
501
501
|
manager(in_buffer, out_buffer, op,
|
502
|
-
|
502
|
+
integral_constant<bool, (function_allows_small_object_optimization<functor_type>::value)>());
|
503
503
|
}
|
504
504
|
|
505
505
|
public:
|
@@ -530,24 +530,24 @@ namespace boost {
|
|
530
530
|
#ifdef BOOST_NO_SFINAE
|
531
531
|
// These routines perform comparisons between a Boost.Function
|
532
532
|
// object and an arbitrary function object (when the last
|
533
|
-
// parameter is
|
534
|
-
// last parameter is
|
533
|
+
// parameter is false_type) or against zero (when the
|
534
|
+
// last parameter is true_type). They are only necessary
|
535
535
|
// for compilers that don't support SFINAE.
|
536
536
|
template<typename Function, typename Functor>
|
537
537
|
bool
|
538
|
-
compare_equal(const Function& f, const Functor&, int,
|
538
|
+
compare_equal(const Function& f, const Functor&, int, true_type)
|
539
539
|
{ return f.empty(); }
|
540
540
|
|
541
541
|
template<typename Function, typename Functor>
|
542
542
|
bool
|
543
543
|
compare_not_equal(const Function& f, const Functor&, int,
|
544
|
-
|
544
|
+
true_type)
|
545
545
|
{ return !f.empty(); }
|
546
546
|
|
547
547
|
template<typename Function, typename Functor>
|
548
548
|
bool
|
549
549
|
compare_equal(const Function& f, const Functor& g, long,
|
550
|
-
|
550
|
+
false_type)
|
551
551
|
{
|
552
552
|
if (const Functor* fp = f.template target<Functor>())
|
553
553
|
return function_equal(*fp, g);
|
@@ -557,7 +557,7 @@ namespace boost {
|
|
557
557
|
template<typename Function, typename Functor>
|
558
558
|
bool
|
559
559
|
compare_equal(const Function& f, const reference_wrapper<Functor>& g,
|
560
|
-
int,
|
560
|
+
int, false_type)
|
561
561
|
{
|
562
562
|
if (const Functor* fp = f.template target<Functor>())
|
563
563
|
return fp == g.get_pointer();
|
@@ -567,7 +567,7 @@ namespace boost {
|
|
567
567
|
template<typename Function, typename Functor>
|
568
568
|
bool
|
569
569
|
compare_not_equal(const Function& f, const Functor& g, long,
|
570
|
-
|
570
|
+
false_type)
|
571
571
|
{
|
572
572
|
if (const Functor* fp = f.template target<Functor>())
|
573
573
|
return !function_equal(*fp, g);
|
@@ -578,7 +578,7 @@ namespace boost {
|
|
578
578
|
bool
|
579
579
|
compare_not_equal(const Function& f,
|
580
580
|
const reference_wrapper<Functor>& g, int,
|
581
|
-
|
581
|
+
false_type)
|
582
582
|
{
|
583
583
|
if (const Functor* fp = f.template target<Functor>())
|
584
584
|
return fp != g.get_pointer();
|
@@ -710,7 +710,7 @@ public: // should be protected, but GCC 2.95.3 will fail to allow access
|
|
710
710
|
* The bad_function_call exception class is thrown when a boost::function
|
711
711
|
* object is invoked
|
712
712
|
*/
|
713
|
-
class bad_function_call : public std::runtime_error
|
713
|
+
class BOOST_SYMBOL_VISIBLE bad_function_call : public std::runtime_error
|
714
714
|
{
|
715
715
|
public:
|
716
716
|
bad_function_call() : std::runtime_error("call to empty boost::function") {}
|
@@ -750,28 +750,28 @@ inline bool operator!=(detail::function::useless_clear_type*,
|
|
750
750
|
template<typename Functor>
|
751
751
|
inline bool operator==(const function_base& f, Functor g)
|
752
752
|
{
|
753
|
-
typedef
|
753
|
+
typedef integral_constant<bool, (is_integral<Functor>::value)> integral;
|
754
754
|
return detail::function::compare_equal(f, g, 0, integral());
|
755
755
|
}
|
756
756
|
|
757
757
|
template<typename Functor>
|
758
758
|
inline bool operator==(Functor g, const function_base& f)
|
759
759
|
{
|
760
|
-
typedef
|
760
|
+
typedef integral_constant<bool, (is_integral<Functor>::value)> integral;
|
761
761
|
return detail::function::compare_equal(f, g, 0, integral());
|
762
762
|
}
|
763
763
|
|
764
764
|
template<typename Functor>
|
765
765
|
inline bool operator!=(const function_base& f, Functor g)
|
766
766
|
{
|
767
|
-
typedef
|
767
|
+
typedef integral_constant<bool, (is_integral<Functor>::value)> integral;
|
768
768
|
return detail::function::compare_not_equal(f, g, 0, integral());
|
769
769
|
}
|
770
770
|
|
771
771
|
template<typename Functor>
|
772
772
|
inline bool operator!=(Functor g, const function_base& f)
|
773
773
|
{
|
774
|
-
typedef
|
774
|
+
typedef integral_constant<bool, (is_integral<Functor>::value)> integral;
|
775
775
|
return detail::function::compare_not_equal(f, g, 0, integral());
|
776
776
|
}
|
777
777
|
#else
|
@@ -11,7 +11,7 @@
|
|
11
11
|
// Note: this header is a header template and must NOT have multiple-inclusion
|
12
12
|
// protection.
|
13
13
|
#include <boost/function/detail/prologue.hpp>
|
14
|
-
#include <boost/
|
14
|
+
#include <boost/core/no_exceptions_support.hpp>
|
15
15
|
|
16
16
|
#if defined(BOOST_MSVC)
|
17
17
|
# pragma warning( push )
|
@@ -29,8 +29,7 @@
|
|
29
29
|
#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
|
30
30
|
# define BOOST_FUNCTION_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, a)
|
31
31
|
#else
|
32
|
-
#
|
33
|
-
# define BOOST_FUNCTION_ARG(J,I,D) ::boost::forward< BOOST_PP_CAT(T,I) >(BOOST_PP_CAT(a,I))
|
32
|
+
# define BOOST_FUNCTION_ARG(J,I,D) static_cast<BOOST_PP_CAT(T,I)&&>(BOOST_PP_CAT(a,I))
|
34
33
|
# define BOOST_FUNCTION_ARGS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG,BOOST_PP_EMPTY)
|
35
34
|
#endif
|
36
35
|
|
@@ -240,7 +239,7 @@ namespace boost {
|
|
240
239
|
>
|
241
240
|
struct BOOST_FUNCTION_GET_FUNCTION_INVOKER
|
242
241
|
{
|
243
|
-
typedef typename
|
242
|
+
typedef typename conditional<(is_void<R>::value),
|
244
243
|
BOOST_FUNCTION_VOID_FUNCTION_INVOKER<
|
245
244
|
FunctionPtr,
|
246
245
|
R BOOST_FUNCTION_COMMA
|
@@ -261,7 +260,7 @@ namespace boost {
|
|
261
260
|
>
|
262
261
|
struct BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
|
263
262
|
{
|
264
|
-
typedef typename
|
263
|
+
typedef typename conditional<(is_void<R>::value),
|
265
264
|
BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER<
|
266
265
|
FunctionObj,
|
267
266
|
R BOOST_FUNCTION_COMMA
|
@@ -282,7 +281,7 @@ namespace boost {
|
|
282
281
|
>
|
283
282
|
struct BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER
|
284
283
|
{
|
285
|
-
typedef typename
|
284
|
+
typedef typename conditional<(is_void<R>::value),
|
286
285
|
BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER<
|
287
286
|
FunctionObj,
|
288
287
|
R BOOST_FUNCTION_COMMA
|
@@ -305,7 +304,7 @@ namespace boost {
|
|
305
304
|
>
|
306
305
|
struct BOOST_FUNCTION_GET_MEMBER_INVOKER
|
307
306
|
{
|
308
|
-
typedef typename
|
307
|
+
typedef typename conditional<(is_void<R>::value),
|
309
308
|
BOOST_FUNCTION_VOID_MEMBER_INVOKER<
|
310
309
|
MemberPtr,
|
311
310
|
R BOOST_FUNCTION_COMMA
|
@@ -350,9 +349,8 @@ namespace boost {
|
|
350
349
|
typedef functor_manager<FunctionPtr> manager_type;
|
351
350
|
};
|
352
351
|
|
353
|
-
template<typename FunctionPtr,
|
354
|
-
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS
|
355
|
-
typename Allocator>
|
352
|
+
template<typename FunctionPtr, typename Allocator,
|
353
|
+
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
|
356
354
|
struct apply_a
|
357
355
|
{
|
358
356
|
typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER<
|
@@ -385,9 +383,8 @@ namespace boost {
|
|
385
383
|
typedef functor_manager<MemberPtr> manager_type;
|
386
384
|
};
|
387
385
|
|
388
|
-
template<typename MemberPtr,
|
389
|
-
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS
|
390
|
-
typename Allocator>
|
386
|
+
template<typename MemberPtr, typename Allocator,
|
387
|
+
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
|
391
388
|
struct apply_a
|
392
389
|
{
|
393
390
|
typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER<
|
@@ -420,9 +417,8 @@ namespace boost {
|
|
420
417
|
typedef functor_manager<FunctionObj> manager_type;
|
421
418
|
};
|
422
419
|
|
423
|
-
template<typename FunctionObj,
|
424
|
-
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS
|
425
|
-
typename Allocator>
|
420
|
+
template<typename FunctionObj, typename Allocator,
|
421
|
+
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
|
426
422
|
struct apply_a
|
427
423
|
{
|
428
424
|
typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
|
@@ -454,9 +450,8 @@ namespace boost {
|
|
454
450
|
typedef reference_manager<typename RefWrapper::type> manager_type;
|
455
451
|
};
|
456
452
|
|
457
|
-
template<typename RefWrapper,
|
458
|
-
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS
|
459
|
-
typename Allocator>
|
453
|
+
template<typename RefWrapper, typename Allocator,
|
454
|
+
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
|
460
455
|
struct apply_a
|
461
456
|
{
|
462
457
|
typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
|
@@ -567,27 +562,27 @@ namespace boost {
|
|
567
562
|
// Assign to a function object using the small object optimization
|
568
563
|
template<typename FunctionObj>
|
569
564
|
void
|
570
|
-
assign_functor(FunctionObj f, function_buffer& functor,
|
565
|
+
assign_functor(FunctionObj f, function_buffer& functor, true_type) const
|
571
566
|
{
|
572
567
|
new (reinterpret_cast<void*>(functor.data)) FunctionObj(f);
|
573
568
|
}
|
574
569
|
template<typename FunctionObj,typename Allocator>
|
575
570
|
void
|
576
|
-
assign_functor_a(FunctionObj f, function_buffer& functor, Allocator,
|
571
|
+
assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const
|
577
572
|
{
|
578
|
-
assign_functor(f,functor,
|
573
|
+
assign_functor(f,functor,true_type());
|
579
574
|
}
|
580
575
|
|
581
576
|
// Assign to a function object allocated on the heap.
|
582
577
|
template<typename FunctionObj>
|
583
578
|
void
|
584
|
-
assign_functor(FunctionObj f, function_buffer& functor,
|
579
|
+
assign_functor(FunctionObj f, function_buffer& functor, false_type) const
|
585
580
|
{
|
586
581
|
functor.members.obj_ptr = new FunctionObj(f);
|
587
582
|
}
|
588
583
|
template<typename FunctionObj,typename Allocator>
|
589
584
|
void
|
590
|
-
assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a,
|
585
|
+
assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const
|
591
586
|
{
|
592
587
|
typedef functor_wrapper<FunctionObj,Allocator> functor_wrapper_type;
|
593
588
|
#if defined(BOOST_NO_CXX11_ALLOCATOR)
|
@@ -615,7 +610,7 @@ namespace boost {
|
|
615
610
|
{
|
616
611
|
if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
|
617
612
|
assign_functor(f, functor,
|
618
|
-
|
613
|
+
integral_constant<bool, (function_allows_small_object_optimization<FunctionObj>::value)>());
|
619
614
|
return true;
|
620
615
|
} else {
|
621
616
|
return false;
|
@@ -627,7 +622,7 @@ namespace boost {
|
|
627
622
|
{
|
628
623
|
if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
|
629
624
|
assign_functor_a(f, functor, a,
|
630
|
-
|
625
|
+
integral_constant<bool, (function_allows_small_object_optimization<FunctionObj>::value)>());
|
631
626
|
return true;
|
632
627
|
} else {
|
633
628
|
return false;
|
@@ -708,14 +703,14 @@ namespace boost {
|
|
708
703
|
|
709
704
|
typedef BOOST_FUNCTION_FUNCTION self_type;
|
710
705
|
|
711
|
-
BOOST_FUNCTION_FUNCTION() : function_base() {
|
706
|
+
BOOST_DEFAULTED_FUNCTION(BOOST_FUNCTION_FUNCTION(), : function_base() {})
|
712
707
|
|
713
708
|
// MSVC chokes if the following two constructors are collapsed into
|
714
709
|
// one with a default parameter.
|
715
710
|
template<typename Functor>
|
716
711
|
BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f
|
717
712
|
#ifndef BOOST_NO_SFINAE
|
718
|
-
,typename boost::
|
713
|
+
,typename boost::enable_if_<
|
719
714
|
!(is_integral<Functor>::value),
|
720
715
|
int>::type = 0
|
721
716
|
#endif // BOOST_NO_SFINAE
|
@@ -727,7 +722,7 @@ namespace boost {
|
|
727
722
|
template<typename Functor,typename Allocator>
|
728
723
|
BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a
|
729
724
|
#ifndef BOOST_NO_SFINAE
|
730
|
-
,typename boost::
|
725
|
+
,typename boost::enable_if_<
|
731
726
|
!(is_integral<Functor>::value),
|
732
727
|
int>::type = 0
|
733
728
|
#endif // BOOST_NO_SFINAE
|
@@ -776,7 +771,7 @@ namespace boost {
|
|
776
771
|
// construct.
|
777
772
|
template<typename Functor>
|
778
773
|
#ifndef BOOST_NO_SFINAE
|
779
|
-
typename boost::
|
774
|
+
typename boost::enable_if_<
|
780
775
|
!(is_integral<Functor>::value),
|
781
776
|
BOOST_FUNCTION_FUNCTION&>::type
|
782
777
|
#else
|
@@ -904,7 +899,9 @@ namespace boost {
|
|
904
899
|
if (!f.empty()) {
|
905
900
|
this->vtable = f.vtable;
|
906
901
|
if (this->has_trivial_copy_and_destroy())
|
907
|
-
|
902
|
+
// Don't operate on storage directly since union type doesn't relax
|
903
|
+
// strict aliasing rules, despite of having member char type.
|
904
|
+
std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer));
|
908
905
|
else
|
909
906
|
get_vtable()->base.manager(f.functor, this->functor,
|
910
907
|
boost::detail::function::clone_functor_tag);
|
@@ -953,9 +950,8 @@ namespace boost {
|
|
953
950
|
typedef typename boost::detail::function::get_function_tag<Functor>::type tag;
|
954
951
|
typedef boost::detail::function::BOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
|
955
952
|
typedef typename get_invoker::
|
956
|
-
template apply_a<Functor, R BOOST_FUNCTION_COMMA
|
957
|
-
BOOST_FUNCTION_TEMPLATE_ARGS
|
958
|
-
Allocator>
|
953
|
+
template apply_a<Functor, Allocator, R BOOST_FUNCTION_COMMA
|
954
|
+
BOOST_FUNCTION_TEMPLATE_ARGS>
|
959
955
|
handler_type;
|
960
956
|
|
961
957
|
typedef typename handler_type::invoker_type invoker_type;
|
@@ -992,7 +988,9 @@ namespace boost {
|
|
992
988
|
if (!f.empty()) {
|
993
989
|
this->vtable = f.vtable;
|
994
990
|
if (this->has_trivial_copy_and_destroy())
|
995
|
-
|
991
|
+
// Don't operate on storage directly since union type doesn't relax
|
992
|
+
// strict aliasing rules, despite of having member char type.
|
993
|
+
std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data));
|
996
994
|
else
|
997
995
|
get_vtable()->base.manager(f.functor, this->functor,
|
998
996
|
boost::detail::function::move_functor_tag);
|
@@ -1042,7 +1040,7 @@ template
|
|
1042
1040
|
#if BOOST_FUNCTION_NUM_ARGS == 0
|
1043
1041
|
#define BOOST_FUNCTION_PARTIAL_SPEC R (void)
|
1044
1042
|
#else
|
1045
|
-
#define BOOST_FUNCTION_PARTIAL_SPEC R (
|
1043
|
+
#define BOOST_FUNCTION_PARTIAL_SPEC R (BOOST_FUNCTION_TEMPLATE_ARGS)
|
1046
1044
|
#endif
|
1047
1045
|
|
1048
1046
|
template<typename R BOOST_FUNCTION_COMMA
|
@@ -1057,12 +1055,12 @@ class function
|
|
1057
1055
|
|
1058
1056
|
public:
|
1059
1057
|
|
1060
|
-
function() : base_type() {}
|
1058
|
+
BOOST_DEFAULTED_FUNCTION(function(), : base_type() {})
|
1061
1059
|
|
1062
1060
|
template<typename Functor>
|
1063
1061
|
function(Functor f
|
1064
1062
|
#ifndef BOOST_NO_SFINAE
|
1065
|
-
,typename boost::
|
1063
|
+
,typename boost::enable_if_<
|
1066
1064
|
!(is_integral<Functor>::value),
|
1067
1065
|
int>::type = 0
|
1068
1066
|
#endif
|
@@ -1073,7 +1071,7 @@ public:
|
|
1073
1071
|
template<typename Functor,typename Allocator>
|
1074
1072
|
function(Functor f, Allocator a
|
1075
1073
|
#ifndef BOOST_NO_SFINAE
|
1076
|
-
,typename boost::
|
1074
|
+
,typename boost::enable_if_<
|
1077
1075
|
!(is_integral<Functor>::value),
|
1078
1076
|
int>::type = 0
|
1079
1077
|
#endif
|
@@ -1112,7 +1110,7 @@ public:
|
|
1112
1110
|
|
1113
1111
|
template<typename Functor>
|
1114
1112
|
#ifndef BOOST_NO_SFINAE
|
1115
|
-
typename boost::
|
1113
|
+
typename boost::enable_if_<
|
1116
1114
|
!(is_integral<Functor>::value),
|
1117
1115
|
self_type&>::type
|
1118
1116
|
#else
|