diff --git a/include/mapnik/geometry_impl.hpp b/include/mapnik/geometry_impl.hpp index 7d7f1e73d..62f549ce3 100644 --- a/include/mapnik/geometry_impl.hpp +++ b/include/mapnik/geometry_impl.hpp @@ -102,8 +102,8 @@ struct line_string : vertex_sequence line_string() = default; line_string (line_string && other) = default ; line_string& operator=(line_string &&) = default; - line_string (line_string const& ) = default; - line_string& operator=(line_string const&) = default; + line_string (line_string const& ) = delete; + line_string& operator=(line_string const&) = delete; inline std::size_t num_points() const { return data.size(); } inline void clear() { data.clear();} inline void resize(std::size_t new_size) { data.resize(new_size);} diff --git a/plugins/input/shape/shape_featureset.cpp b/plugins/input/shape/shape_featureset.cpp index 2793a63e0..8ede9bb89 100644 --- a/plugins/input/shape/shape_featureset.cpp +++ b/plugins/input/shape/shape_featureset.cpp @@ -123,12 +123,7 @@ feature_ptr shape_featureset::next() { shape_io::read_bbox(record, feature_bbox_); if (!filter_.pass(feature_bbox_)) continue; - mapnik::new_geometry::geometry && geometry = shape_io::read_polyline(record); - if (geometry.is()) - { - auto const& line = mapnik::util::get(geometry); - } - feature->set_geometry(std::move(geometry)); + feature->set_geometry(shape_io::read_polyline(record)); break; } case shape_io::shape_polygon: diff --git a/plugins/input/shape/shape_index_featureset.cpp b/plugins/input/shape/shape_index_featureset.cpp index b8f3e6d7a..9659b7832 100644 --- a/plugins/input/shape/shape_index_featureset.cpp +++ b/plugins/input/shape/shape_index_featureset.cpp @@ -138,8 +138,7 @@ feature_ptr shape_index_featureset::next() { shape_io::read_bbox(record, feature_bbox_); if (!filter_.pass(feature_bbox_)) continue; - mapnik::new_geometry::geometry && geometry = shape_io::read_polyline(record); - feature->set_geometry(std::move(geometry)); + feature->set_geometry(shape_io::read_polyline(record)); break; } case shape_io::shape_polygon: diff --git a/plugins/input/shape/shape_io.cpp b/plugins/input/shape/shape_io.cpp index e0ea40915..654f8d319 100644 --- a/plugins/input/shape/shape_io.cpp +++ b/plugins/input/shape/shape_io.cpp @@ -99,6 +99,7 @@ mapnik::new_geometry::geometry shape_io::read_polyline(shape_file::record_type & { mapnik::new_geometry::line_string line; + line.reserve(num_points); record.skip(4); for (int i = 0; i < num_points; ++i) { @@ -131,6 +132,7 @@ mapnik::new_geometry::geometry shape_io::read_polyline(shape_file::record_type & } mapnik::new_geometry::line_string line; + line.reserve(end - start); for (int j = start; j < end; ++j) { double x = record.read_double(); diff --git a/src/agg/process_line_symbolizer.cpp b/src/agg/process_line_symbolizer.cpp index eb2cd4469..d878e097e 100644 --- a/src/agg/process_line_symbolizer.cpp +++ b/src/agg/process_line_symbolizer.cpp @@ -217,6 +217,10 @@ void agg_renderer::process(line_symbolizer const& sym, mapnik::new_geometry::line_string_vertex_adapter va(line); converter.apply(va); } + else + { + std::cerr << "FIXME" << std::endl; + } /* for (geometry_type const& geom : feature.paths()) {