summaryrefslogtreecommitdiff
path: root/platform/darwin/src/NSExpression+MGLAdditions.mm
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/src/NSExpression+MGLAdditions.mm')
-rw-r--r--platform/darwin/src/NSExpression+MGLAdditions.mm11
1 files changed, 10 insertions, 1 deletions
diff --git a/platform/darwin/src/NSExpression+MGLAdditions.mm b/platform/darwin/src/NSExpression+MGLAdditions.mm
index 62fddd8f86..b5319ec45e 100644
--- a/platform/darwin/src/NSExpression+MGLAdditions.mm
+++ b/platform/darwin/src/NSExpression+MGLAdditions.mm
@@ -716,7 +716,16 @@ NSArray *MGLSubexpressionsWithJSONObjects(NSArray *objects) {
id base = [self.arguments[1] mgl_jsonExpressionObject];
[interpolationArray addObject:base];
} else if ([curveType isEqualToString:@"cubic-bezier"]) {
- NSArray *controlPoints = [self.arguments[1].collection mgl_jsonExpressionObject];
+ NSMutableArray *controlPoints = [NSMutableArray array];
+
+ if (self.arguments[1].expressionType == NSAggregateExpressionType) {
+ controlPoints = [self.arguments[1].collection mgl_jsonExpressionObject];
+ } else {
+ for (id expression in self.arguments[1].constantValue) {
+ [controlPoints addObject:[expression mgl_jsonExpressionObject]];
+ }
+ }
+
[interpolationArray addObjectsFromArray:controlPoints];
}
NSMutableArray *expressionObject = [NSMutableArray arrayWithObjects:@"interpolate", interpolationArray, self.operand.mgl_jsonExpressionObject, nil];