summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Kondrashov <vkondrashov@tableau.com>2018-08-13 11:25:33 -0700
committerKonstantin Käfer <mail@kkaefer.com>2018-08-14 11:51:50 -0700
commit196aee5fa4e5c428840ec640e9e03cca487a5c2f (patch)
tree582867f7b52627530a020af7f8d31e97c6cc34ba
parent23c01a9a95021a7f6c01a9dadf008667038bfb89 (diff)
downloadqtlocation-mapboxgl-196aee5fa4e5c428840ec640e9e03cca487a5c2f.tar.gz
Fix out of range exception for string compare
-rw-r--r--platform/default/asset_file_source.cpp2
-rw-r--r--platform/default/local_file_source.cpp2
-rw-r--r--src/mbgl/style/expression/is_constant.cpp4
3 files changed, 4 insertions, 4 deletions
diff --git a/platform/default/asset_file_source.cpp b/platform/default/asset_file_source.cpp
index 3063bf88a0..7988654ae5 100644
--- a/platform/default/asset_file_source.cpp
+++ b/platform/default/asset_file_source.cpp
@@ -75,7 +75,7 @@ std::unique_ptr<AsyncRequest> AssetFileSource::request(const Resource& resource,
}
bool AssetFileSource::acceptsURL(const std::string& url) {
- return std::equal(assetProtocol.begin(), assetProtocol.end(), url.begin());
+ return 0 == url.rfind(assetProtocol, 0);
}
} // namespace mbgl
diff --git a/platform/default/local_file_source.cpp b/platform/default/local_file_source.cpp
index 0635e86d80..1b7b7b9278 100644
--- a/platform/default/local_file_source.cpp
+++ b/platform/default/local_file_source.cpp
@@ -75,7 +75,7 @@ std::unique_ptr<AsyncRequest> LocalFileSource::request(const Resource& resource,
}
bool LocalFileSource::acceptsURL(const std::string& url) {
- return std::equal(fileProtocol.begin(), fileProtocol.end(), url.begin());
+ return 0 == url.rfind(fileProtocol, 0);
}
} // namespace mbgl
diff --git a/src/mbgl/style/expression/is_constant.cpp b/src/mbgl/style/expression/is_constant.cpp
index 69f27f6fef..3b20f49a86 100644
--- a/src/mbgl/style/expression/is_constant.cpp
+++ b/src/mbgl/style/expression/is_constant.cpp
@@ -17,7 +17,7 @@ bool isFeatureConstant(const Expression& expression) {
return false;
} else if (name == "has" && parameterCount && *parameterCount == 1) {
return false;
- } else if (std::equal(std::begin(filter), std::end(filter) - 1, name.begin())) {
+ } else if (0 == name.rfind(filter, 0)) {
// Legacy filters begin with "filter-" and are never constant.
return false;
} else if (
@@ -28,7 +28,7 @@ bool isFeatureConstant(const Expression& expression) {
return false;
}
}
-
+
if (expression.getKind() == Kind::CollatorExpression) {
// Although the results of a Collator expression with fixed arguments
// generally shouldn't change between executions, we can't serialize them