diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-09-02 13:42:31 +0300 |
---|---|---|
committer | Julian Rex <julian.rex@mapbox.com> | 2019-09-07 00:15:38 -0400 |
commit | 7fd9d38e587e6a5bf7ed7af95b41947d3dbbe7db (patch) | |
tree | 026c678a8a7ee35b150f12ff04347882248e9250 | |
parent | a3aa491c7b70c69df32c711ea0ec6f4a1de6ac7e (diff) | |
download | qtlocation-mapboxgl-7fd9d38e587e6a5bf7ed7af95b41947d3dbbe7db.tar.gz |
[core] Weak factory for style::Layer
-rw-r--r-- | include/mbgl/style/layer.hpp | 7 | ||||
-rwxr-xr-x | scripts/generate-file-lists.js | 3 | ||||
-rw-r--r-- | vendor/mapbox-base-files.json | 3 |
3 files changed, 11 insertions, 2 deletions
diff --git a/include/mbgl/style/layer.hpp b/include/mbgl/style/layer.hpp index a66ff37b22..cfaca60e60 100644 --- a/include/mbgl/style/layer.hpp +++ b/include/mbgl/style/layer.hpp @@ -6,6 +6,8 @@ #include <mbgl/style/types.hpp> #include <mbgl/style/conversion.hpp> +#include <mapbox/weak.hpp> + #include <cassert> #include <memory> #include <string> @@ -124,10 +126,15 @@ public: const LayerTypeInfo* getTypeInfo() const noexcept; + mapbox::base::WeakPtr<Layer> makeWeakPtr() { + return weakFactory.makeWeakPtr(); + } + protected: virtual Mutable<Impl> mutableBaseImpl() const = 0; LayerObserver* observer; + mapbox::base::WeakPtrFactory<Layer> weakFactory {this}; }; } // namespace style diff --git a/scripts/generate-file-lists.js b/scripts/generate-file-lists.js index 29259ac5d8..02d7136f12 100755 --- a/scripts/generate-file-lists.js +++ b/scripts/generate-file-lists.js @@ -143,7 +143,8 @@ generateFileList('vendor/mapbox-base-files.json', 'vendor/mapbox-base/mapbox/optional', 'vendor/mapbox-base/mapbox/supercluster.hpp', 'vendor/mapbox-base/mapbox/geojson.hpp', - 'vendor/mapbox-base/mapbox/jni.hpp' ], + 'vendor/mapbox-base/mapbox/jni.hpp', + 'vendor/mapbox-base/mapbox/weak' ], vendorRegex, [ "include/*.hpp", "include/**/*.hpp", "include/**/*.h", "optional.hpp", ":!:include/jni/string_conversion.hpp" ]); generateFileList('vendor/polylabel-files.json', [ 'vendor/polylabel' ], vendorRegex, [ "include/**/*.hpp" ]); generateFileList('vendor/protozero-files.json', [ 'vendor/protozero' ], vendorRegex, [ "include/**/*.hpp" ]); diff --git a/vendor/mapbox-base-files.json b/vendor/mapbox-base-files.json index 3922c28e0a..f27d90b7af 100644 --- a/vendor/mapbox-base-files.json +++ b/vendor/mapbox-base-files.json @@ -98,7 +98,8 @@ "mapbox/variant.hpp": "vendor/mapbox-base/mapbox/variant/include/mapbox/variant.hpp", "mapbox/variant_cast.hpp": "vendor/mapbox-base/mapbox/variant/include/mapbox/variant_cast.hpp", "mapbox/variant_io.hpp": "vendor/mapbox-base/mapbox/variant/include/mapbox/variant_io.hpp", - "mapbox/variant_visitor.hpp": "vendor/mapbox-base/mapbox/variant/include/mapbox/variant_visitor.hpp" + "mapbox/variant_visitor.hpp": "vendor/mapbox-base/mapbox/variant/include/mapbox/variant_visitor.hpp", + "mapbox/weak.hpp": "vendor/mapbox-base/mapbox/weak/include/mapbox/weak.hpp" }, "private_headers": {} } |