diff options
Diffstat (limited to 'platform/darwin/src/NSExpression+MGLAdditions.mm')
-rw-r--r-- | platform/darwin/src/NSExpression+MGLAdditions.mm | 11 |
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]; |