diff options
author | Julian Rex <julian.rex@mapbox.com> | 2019-10-04 11:40:58 -0400 |
---|---|---|
committer | Julian Rex <julian.rex@mapbox.com> | 2019-10-04 11:40:58 -0400 |
commit | 65bf86dda08350b8da6344f96805b2baa9e9a0ee (patch) | |
tree | 64451e949793f56a39f882b88427570ff3bfee42 | |
parent | 4b4e82864783a28c0785ebbf2edea84a722d46ae (diff) | |
download | qtlocation-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.mm | 7 | ||||
-rw-r--r-- | platform/darwin/src/MGLRasterTileSource.mm | 7 | ||||
-rw-r--r-- | platform/darwin/src/MGLVectorTileSource.mm | 7 |
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; } |