diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2017-04-04 11:33:22 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-04-13 10:33:18 -0700 |
commit | 7b041b123cb067d247a727bb3a4563bb2fc575eb (patch) | |
tree | cdf9ce1583ef6cc3a16970a7ad9a1527521ecf41 /platform/darwin/src/MGLStyleLayer_Private.h | |
parent | de6c9b35f35f6ec0950529261b207d716c046beb (diff) | |
download | qtlocation-mapboxgl-7b041b123cb067d247a727bb3a4563bb2fc575eb.tar.gz |
[core, darwin] Object identity for MGLSource*, MGLStyleLayer*
All `MGLSource` pointers referencing the same logical source will now be object identical; similarly for `MGLStyleLayer`.
Diffstat (limited to 'platform/darwin/src/MGLStyleLayer_Private.h')
-rw-r--r-- | platform/darwin/src/MGLStyleLayer_Private.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLStyleLayer_Private.h b/platform/darwin/src/MGLStyleLayer_Private.h index d024a0bb13..ed8ec31755 100644 --- a/platform/darwin/src/MGLStyleLayer_Private.h +++ b/platform/darwin/src/MGLStyleLayer_Private.h @@ -7,6 +7,14 @@ NS_ASSUME_NONNULL_BEGIN +// A struct to be stored in the `peer` member of mbgl::style::Layer, in order to implement +// object identity. We don't store a MGLStyleLayer pointer directly because that doesn't +// interoperate with ARC. The inner pointer is weak in order to avoid a reference cycle for +// "pending" MGLStyleLayers, which have a strong owning pointer to the mbgl::style::Layer. +struct LayerWrapper { + __weak MGLStyleLayer *layer; +}; + /** Assert that the style layer is valid. |