From e860fa6f0a71805dafd03a1ac02980369b799f9e Mon Sep 17 00:00:00 2001 From: Jesse Bounds Date: Tue, 14 Feb 2017 13:09:49 -0800 Subject: [ios, macos] Recreate pending and raw layer ref when layer is removed --- platform/darwin/src/MGLLineStyleLayer.mm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'platform/darwin/src/MGLLineStyleLayer.mm') diff --git a/platform/darwin/src/MGLLineStyleLayer.mm b/platform/darwin/src/MGLLineStyleLayer.mm index 6f1d2ee249..fc220650f4 100644 --- a/platform/darwin/src/MGLLineStyleLayer.mm +++ b/platform/darwin/src/MGLLineStyleLayer.mm @@ -119,13 +119,14 @@ namespace mbgl { - (void)removeFromMapView:(MGLMapView *)mapView { - _pendingLayer = nullptr; - self.rawLayer = nullptr; - auto removedLayer = mapView.mbglMap->removeLayer(self.identifier.UTF8String); if (!removedLayer) { return; } + + auto originalLayer = std::make_unique(self.identifier.UTF8String, self.sourceIdentifier.UTF8String); + _pendingLayer = std::move(originalLayer); + self.rawLayer = _pendingLayer.get(); mbgl::style::LineLayer *layer = dynamic_cast(removedLayer.get()); if (!layer) { -- cgit v1.2.1