diff --git a/include/boost/geometry/algorithms/detail/overlay/overlay.hpp b/include/boost/geometry/algorithms/detail/overlay/overlay.hpp index 94f867df4..ab5b6d123 100644 --- a/include/boost/geometry/algorithms/detail/overlay/overlay.hpp +++ b/include/boost/geometry/algorithms/detail/overlay/overlay.hpp @@ -145,11 +145,21 @@ struct overlay OutputIterator out, Strategy const& ) { - if (geometry::num_points(geometry1) == 0 && geometry::num_points(geometry2) == 0) + if (geometry::num_points(geometry1) == 0 + && geometry::num_points(geometry2) == 0) { return out; } + if (geometry::num_points(geometry1) == 0 + || geometry::num_points(geometry2) == 0) + { + return return_if_one_input_is_empty + < + GeometryOut, Direction, ReverseOut + >(geometry1, geometry2, out); + } + typedef typename geometry::point_type::type point_type; typedef detail::overlay::traversal_turn_info turn_info; typedef std::deque container_type; @@ -159,15 +169,6 @@ struct overlay typename geometry::ring_type::type > ring_container_type; - if (geometry::num_points(geometry1) == 0 - || geometry::num_points(geometry2) == 0) - { - return return_if_one_input_is_empty - < - GeometryOut, Direction, ReverseOut - >(geometry1, geometry2, out); - } - container_type turn_points; #ifdef BOOST_GEOMETRY_TIME_OVERLAY