summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2018-03-07 17:47:32 -0800
committerMinh Nguyễn <mxn@1ec5.org>2018-03-30 03:29:44 -0700
commit2b9ad424ca5af8a6651a8e9eb4a3b450e3c3567a (patch)
treeecff38857b1ac2b6d90e2a1c2ad546865fc62280
parent6e85cba89ebad48c51c34836f98292dbb524c0e1 (diff)
downloadqtlocation-mapboxgl-2b9ad424ca5af8a6651a8e9eb4a3b450e3c3567a.tar.gz
[ios, macos] Special-case number conversion without fallbacks
-rw-r--r--platform/darwin/src/NSExpression+MGLAdditions.mm9
1 files changed, 7 insertions, 2 deletions
diff --git a/platform/darwin/src/NSExpression+MGLAdditions.mm b/platform/darwin/src/NSExpression+MGLAdditions.mm
index 2bdebc89bb..07d2f6297c 100644
--- a/platform/darwin/src/NSExpression+MGLAdditions.mm
+++ b/platform/darwin/src/NSExpression+MGLAdditions.mm
@@ -548,7 +548,11 @@ NSArray *MGLSubexpressionsWithJSONObjects(NSArray *objects) {
}
argumentObjects = [argumentObjects subarrayWithRange:NSMakeRange(1, argumentObjects.count - 1)];
NSArray *subexpressions = MGLSubexpressionsWithJSONObjects(argumentObjects);
- return [NSExpression expressionForFunction:operand selectorName:@"mgl_numberWithFallbackValues:" arguments:subexpressions];
+ if (subexpressions.count == 0) {
+ return [NSExpression expressionForFunction:operand selectorName:@"mgl_number" arguments:@[]];
+ } else {
+ return [NSExpression expressionForFunction:operand selectorName:@"mgl_numberWithFallbackValues:" arguments:subexpressions];
+ }
} else if ([op isEqualToString:@"to-string"]) {
NSExpression *operand = [NSExpression mgl_expressionWithJSONObject:argumentObjects.firstObject];
return [NSExpression expressionWithFormat:@"CAST(%@, 'NSString')", operand];
@@ -848,7 +852,8 @@ NSArray *MGLSubexpressionsWithJSONObjects(NSArray *objects) {
return @[@"at", self.arguments[1].mgl_jsonExpressionObject, self.arguments[0].mgl_jsonExpressionObject];
} else if ([function isEqualToString:@"boolValue"]) {
return @[@"to-boolean", self.operand.mgl_jsonExpressionObject];
- } else if ([function isEqualToString:@"mgl_numberWithFallbackValues:"] ||
+ } else if ([function isEqualToString:@"mgl_number"] ||
+ [function isEqualToString:@"mgl_numberWithFallbackValues:"] ||
[function isEqualToString:@"decimalValue"] ||
[function isEqualToString:@"floatValue"] ||
[function isEqualToString:@"doubleValue"]) {