From 8b37a0704c7c20b1664fee3dfcc79139982a1ce7 Mon Sep 17 00:00:00 2001 From: Asheem Mamoowala Date: Wed, 31 May 2017 11:53:04 -0700 Subject: [core] Use fixed-size std::array for ImageSource coordinates --- include/mbgl/style/conversion/coordinate.hpp | 4 ++-- include/mbgl/style/conversion/source.hpp | 7 +++---- include/mbgl/style/sources/image_source.hpp | 12 ++++++------ 3 files changed, 11 insertions(+), 12 deletions(-) (limited to 'include/mbgl') diff --git a/include/mbgl/style/conversion/coordinate.hpp b/include/mbgl/style/conversion/coordinate.hpp index 736f5e94a2..732624e77f 100644 --- a/include/mbgl/style/conversion/coordinate.hpp +++ b/include/mbgl/style/conversion/coordinate.hpp @@ -13,7 +13,7 @@ public: template optional operator() (const V& value, Error& error) const { if (!isArray(value) || arrayLength(value) < 2 ) { - error = { "coordinate array must contain numeric longtitude and latitude values" }; + error = { "coordinate array must contain numeric longitude and latitude values" }; return {}; } //Style spec uses GeoJSON convention for specifying coordinates @@ -21,7 +21,7 @@ public: optional longitude = toDouble(arrayMember(value, 0)); if (!latitude || !longitude) { - error = { "coordinate array must contain numeric longtitude and latitude values" }; + error = { "coordinate array must contain numeric longitude and latitude values" }; return {}; } if (*latitude < -90 || *latitude > 90 ){ diff --git a/include/mbgl/style/conversion/source.hpp b/include/mbgl/style/conversion/source.hpp index e121e36955..e0563ac10b 100644 --- a/include/mbgl/style/conversion/source.hpp +++ b/include/mbgl/style/conversion/source.hpp @@ -170,14 +170,13 @@ private: return {}; } - std::vector coordinates; - coordinates.reserve(4); - for( std::size_t i=0; i < arrayLength(*coordinatesValue); i++) { + std::array coordinates; + for (std::size_t i=0; i < 4; i++) { auto latLng = conversion::convert(arrayMember(*coordinatesValue,i), error); if (!latLng) { return {}; } - coordinates.push_back(*latLng); + coordinates[i] = *latLng; } auto result = std::make_unique(id, coordinates); result->setURL(*urlString); diff --git a/include/mbgl/style/sources/image_source.hpp b/include/mbgl/style/sources/image_source.hpp index fd67ad38e5..d8a2c45bd8 100644 --- a/include/mbgl/style/sources/image_source.hpp +++ b/include/mbgl/style/sources/image_source.hpp @@ -12,16 +12,16 @@ namespace style { class ImageSource : public Source { public: - ImageSource(std::string id, const std::vector); + ImageSource(std::string id, const std::array); ~ImageSource() override; - const std::string& getURL() const; - void setURL(const std::string& url) ; + optional getURL() const; + void setURL(const std::string& url); - void setImage(mbgl::UnassociatedImage&&); + void setImage(UnassociatedImage&&); - void setCoordinates(const std::vector&); - std::vector getCoordinates() const; + void setCoordinates(const std::array&); + std::array getCoordinates() const; class Impl; const Impl& impl() const; -- cgit v1.2.1