summaryrefslogtreecommitdiff
path: root/platform/darwin/src/MGLSource.mm
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/src/MGLSource.mm')
-rw-r--r--platform/darwin/src/MGLSource.mm4
1 files changed, 4 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLSource.mm b/platform/darwin/src/MGLSource.mm
index 59c2ae13e6..eb859ba2c0 100644
--- a/platform/darwin/src/MGLSource.mm
+++ b/platform/darwin/src/MGLSource.mm
@@ -10,6 +10,8 @@
// special internal source types like mbgl::AnnotationSource.
@property (nonatomic, readonly) mbgl::style::Source *rawSource;
+@property (nonatomic, readonly, weak) MGLMapView *mapView;
+
@end
@implementation MGLSource {
@@ -48,12 +50,14 @@
"to the style more than once is invalid.", self, mapView.style];
}
+ _mapView = mapView;
mapView.mbglMap->addSource(std::move(_pendingSource));
}
- (void)removeFromMapView:(MGLMapView *)mapView {
if (self.rawSource == mapView.mbglMap->getSource(self.identifier.UTF8String)) {
_pendingSource = mapView.mbglMap->removeSource(self.identifier.UTF8String);
+ _mapView = nil;
}
}