From 685aa01043e765eb9b0a176fea6524a5b0ac0f6e Mon Sep 17 00:00:00 2001 From: "Justin R. Miller" Date: Fri, 6 Mar 2015 16:53:11 -0800 Subject: [PATCH] pass actual feature pbf when filtering layer features --- src/mbgl/map/vector_tile.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mbgl/map/vector_tile.cpp b/src/mbgl/map/vector_tile.cpp index 72142f0a0..235a4151d 100644 --- a/src/mbgl/map/vector_tile.cpp +++ b/src/mbgl/map/vector_tile.cpp @@ -179,13 +179,14 @@ template bool mbgl::evaluate(const FilterExpression&, const GeometryTileTagExtra util::ptr FilteredVectorTileLayer::nextMatchingFeature() { while (feature_pbf.next(2)) { - pbf current_feature_pbf = feature_pbf.message(); + pbf matching_feature_pbf = feature_pbf.message(); + pbf current_feature_pbf = matching_feature_pbf; GeometryTileTagExtractor extractor(layer); while (current_feature_pbf.next()) { if (current_feature_pbf.tag == 2) { // tags - extractor.setTags(current_feature_pbf); + extractor.setTags(current_feature_pbf.message()); } else if (current_feature_pbf.tag == 3) { // geometry type extractor.setType(GeometryFeatureType(current_feature_pbf.varint())); } else { @@ -194,7 +195,7 @@ util::ptr FilteredVectorTileLayer::nextMatchingFeature() { } if (evaluate(filterExpression, extractor)) { - return std::move(std::make_shared(current_feature_pbf.message(), layer)); + return std::move(std::make_shared(matching_feature_pbf, layer)); } }