summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-09-02 13:42:31 +0300
committerJulian Rex <julian.rex@mapbox.com>2019-09-07 00:15:38 -0400
commit7fd9d38e587e6a5bf7ed7af95b41947d3dbbe7db (patch)
tree026c678a8a7ee35b150f12ff04347882248e9250
parenta3aa491c7b70c69df32c711ea0ec6f4a1de6ac7e (diff)
downloadqtlocation-mapboxgl-7fd9d38e587e6a5bf7ed7af95b41947d3dbbe7db.tar.gz
[core] Weak factory for style::Layer
-rw-r--r--include/mbgl/style/layer.hpp7
-rwxr-xr-xscripts/generate-file-lists.js3
-rw-r--r--vendor/mapbox-base-files.json3
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": {}
}