diff --git a/drape_frontend/stylist.cpp b/drape_frontend/stylist.cpp index 0041e46c6f..19357d5c9c 100644 --- a/drape_frontend/stylist.cpp +++ b/drape_frontend/stylist.cpp @@ -338,12 +338,14 @@ CaptionDescription & Stylist::GetCaptionDescriptionImpl() bool InitStylist(FeatureType const & f, int const zoomLevel, bool buildings3d, Stylist & s) { - if (!buildings3d && ftypes::IsBuildingPartChecker::Instance()(f) && - !ftypes::IsBuildingChecker::Instance()(f)) + feature::TypesHolder const types(f); + + if (!buildings3d && ftypes::IsBuildingPartChecker::Instance()(types) && + !ftypes::IsBuildingChecker::Instance()(types)) return false; drule::KeysT keys; - pair geomType = feature::GetDrawRule(f, zoomLevel, keys); + pair geomType = feature::GetDrawRule(types, zoomLevel, keys); FilterRulesByRuntimeSelector(f, zoomLevel, keys); diff --git a/indexer/feature_visibility.cpp b/indexer/feature_visibility.cpp index 95cc530df1..c366ed70ea 100644 --- a/indexer/feature_visibility.cpp +++ b/indexer/feature_visibility.cpp @@ -88,11 +88,9 @@ namespace }; } -pair GetDrawRule(FeatureBase const & f, int level, +pair GetDrawRule(TypesHolder const & types, int level, drule::KeysT & keys) { - TypesHolder types(f); - ASSERT ( keys.empty(), () ); Classificator const & c = classif(); diff --git a/indexer/feature_visibility.hpp b/indexer/feature_visibility.hpp index c468140be6..40c84f27e7 100644 --- a/indexer/feature_visibility.hpp +++ b/indexer/feature_visibility.hpp @@ -56,7 +56,7 @@ namespace feature //@} /// @return (geometry type, is coastline) - pair GetDrawRule(FeatureBase const & f, int level, + pair GetDrawRule(TypesHolder const & types, int level, drule::KeysT & keys); void GetDrawRule(vector const & types, int level, int geoType, drule::KeysT & keys);