diff options
author | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-12-20 14:51:30 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-20 14:51:30 -0800 |
commit | 6a9eec8ed5dee4a4527c25523d4a8b1aee758212 (patch) | |
tree | 28fc102a656bec9d3a35e835cb80dc7ad8026c94 /platform/darwin/src/MGLOpenGLStyleLayer.mm | |
parent | f644d188be719fc6a7a5e6b66b2a69c42e28a970 (diff) | |
download | qtlocation-mapboxgl-6a9eec8ed5dee4a4527c25523d4a8b1aee758212.tar.gz |
Fix CustomLayer context retain count (#10765)
* [core] RenderCustomLayer should de-initialize old context
* [iOS, macOS] Use toll-free bridging to retain/release MGLOpenGLStyleLayer instead of a separate array.
Diffstat (limited to 'platform/darwin/src/MGLOpenGLStyleLayer.mm')
-rw-r--r-- | platform/darwin/src/MGLOpenGLStyleLayer.mm | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/platform/darwin/src/MGLOpenGLStyleLayer.mm b/platform/darwin/src/MGLOpenGLStyleLayer.mm index 36a3c20c97..8933a77382 100644 --- a/platform/darwin/src/MGLOpenGLStyleLayer.mm +++ b/platform/darwin/src/MGLOpenGLStyleLayer.mm @@ -47,7 +47,7 @@ void MGLDrawCustomStyleLayer(void *context, const mbgl::style::CustomLayerRender when creating an OpenGL style layer. */ void MGLFinishCustomStyleLayer(void *context) { - MGLOpenGLStyleLayer *layer = (__bridge MGLOpenGLStyleLayer *)context; + MGLOpenGLStyleLayer *layer = (__bridge_transfer MGLOpenGLStyleLayer *)context; [layer willMoveFromMapView:layer.style.mapView]; } @@ -101,7 +101,7 @@ void MGLFinishCustomStyleLayer(void *context) { MGLPrepareCustomStyleLayer, MGLDrawCustomStyleLayer, MGLFinishCustomStyleLayer, - (__bridge void *)self); + (__bridge_retained void *)self); return self = [super initWithPendingLayer:std::move(layer)]; } @@ -116,9 +116,7 @@ void MGLFinishCustomStyleLayer(void *context) { [NSException raise:@"MGLLayerReuseException" format:@"%@ cannot be added to more than one MGLStyle at a time.", self]; } - _style.openGLLayers[self.identifier] = nil; _style = style; - _style.openGLLayers[self.identifier] = self; } - (void)addToStyle:(MGLStyle *)style belowLayer:(MGLStyleLayer *)otherLayer { |