summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Rex <julian.rex@mapbox.com>2019-10-04 11:40:58 -0400
committerJulian Rex <julian.rex@mapbox.com>2019-10-04 11:40:58 -0400
commit65bf86dda08350b8da6344f96805b2baa9e9a0ee (patch)
tree64451e949793f56a39f882b88427570ff3bfee42
parent4b4e82864783a28c0785ebbf2edea84a722d46ae (diff)
downloadqtlocation-mapboxgl-upstream/jrex/source-assertions.tar.gz
[ios, macos] Changed exception to assert and nil return, since attribution methods can be called via user interaction (without a mechanism to try/catch)upstream/jrex/source-assertions
-rw-r--r--platform/darwin/src/MGLImageSource.mm7
-rw-r--r--platform/darwin/src/MGLRasterTileSource.mm7
-rw-r--r--platform/darwin/src/MGLVectorTileSource.mm7
3 files changed, 18 insertions, 3 deletions
diff --git a/platform/darwin/src/MGLImageSource.mm b/platform/darwin/src/MGLImageSource.mm
index 421cc7a155..2d2f090079 100644
--- a/platform/darwin/src/MGLImageSource.mm
+++ b/platform/darwin/src/MGLImageSource.mm
@@ -1,6 +1,7 @@
#import "MGLImageSource.h"
#import "MGLGeometry_Private.h"
+#import "MGLLoggingConfiguration_Private.h"
#import "MGLSource_Private.h"
#import "MGLTileSource_Private.h"
#import "NSURL+MGLAdditions.h"
@@ -99,7 +100,11 @@
}
- (NSString *)attributionHTMLString {
- MGLAssertStyleSourceIsValid();
+ if (!self.rawSource) {
+ MGLAssert(0, @"Source with identifier `%@` was invalidated after a style change", self.identifier);
+ return nil;
+ }
+
auto attribution = self.rawSource->getAttribution();
return attribution ? @(attribution->c_str()) : nil;
}
diff --git a/platform/darwin/src/MGLRasterTileSource.mm b/platform/darwin/src/MGLRasterTileSource.mm
index b31cee296f..80b21cc7dd 100644
--- a/platform/darwin/src/MGLRasterTileSource.mm
+++ b/platform/darwin/src/MGLRasterTileSource.mm
@@ -1,5 +1,6 @@
#import "MGLRasterTileSource_Private.h"
+#import "MGLLoggingConfiguration_Private.h"
#import "MGLMapView_Private.h"
#import "MGLSource_Private.h"
#import "MGLTileSource_Private.h"
@@ -72,7 +73,11 @@ static const CGFloat MGLRasterTileSourceRetinaTileSize = 512;
}
- (NSString *)attributionHTMLString {
- MGLAssertStyleSourceIsValid();
+ if (!self.rawSource) {
+ MGLAssert(0, @"Source with identifier `%@` was invalidated after a style change", self.identifier);
+ return nil;
+ }
+
auto attribution = self.rawSource->getAttribution();
return attribution ? @(attribution->c_str()) : nil;
}
diff --git a/platform/darwin/src/MGLVectorTileSource.mm b/platform/darwin/src/MGLVectorTileSource.mm
index 85270c4a49..9ab11e2e56 100644
--- a/platform/darwin/src/MGLVectorTileSource.mm
+++ b/platform/darwin/src/MGLVectorTileSource.mm
@@ -1,6 +1,7 @@
#import "MGLVectorTileSource_Private.h"
#import "MGLFeature_Private.h"
+#import "MGLLoggingConfiguration_Private.h"
#import "MGLSource_Private.h"
#import "MGLTileSource_Private.h"
#import "MGLStyle_Private.h"
@@ -44,7 +45,11 @@
}
- (NSString *)attributionHTMLString {
- MGLAssertStyleSourceIsValid();
+ if (!self.rawSource) {
+ MGLAssert(0, @"Source with identifier `%@` was invalidated after a style change", self.identifier);
+ return nil;
+ }
+
auto attribution = self.rawSource->getAttribution();
return attribution ? @(attribution->c_str()) : nil;
}