diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-01-27 23:28:04 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-01-28 17:37:23 -0800 |
commit | d90d374203415b5d7336d8902ad4f1fb0f9ec923 (patch) | |
tree | 28d561d4330da1c9a7668d399e63351eda01fa5b /src | |
parent | b738087080b924061c4e6ce4c8b60ae4573f4f10 (diff) | |
download | qtlocation-mapboxgl-d90d374203415b5d7336d8902ad4f1fb0f9ec923.tar.gz |
[core] Move rapidjson document creation into StyleParser
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/style/style.cpp | 12 | ||||
-rw-r--r-- | src/mbgl/style/style_parser.cpp | 13 | ||||
-rw-r--r-- | src/mbgl/style/style_parser.hpp | 2 |
3 files changed, 14 insertions, 13 deletions
diff --git a/src/mbgl/style/style.cpp b/src/mbgl/style/style.cpp index 18b0d7f3fd..1ffd75bf69 100644 --- a/src/mbgl/style/style.cpp +++ b/src/mbgl/style/style.cpp @@ -23,9 +23,6 @@ #include <csscolorparser/csscolorparser.hpp> -#include <rapidjson/document.h> -#include <rapidjson/error/en.h> - #include <algorithm> namespace mbgl { @@ -46,15 +43,8 @@ void Style::setJSON(const std::string& json, const std::string&) { sources.clear(); layers.clear(); - rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::CrtAllocator> doc; - doc.Parse<0>((const char *const)json.c_str()); - if (doc.HasParseError()) { - Log::Error(Event::ParseStyle, "Error parsing style JSON at %i: %s", doc.GetErrorOffset(), rapidjson::GetParseError_En(doc.GetParseError())); - return; - } - StyleParser parser; - parser.parse(doc); + parser.parse(json); for (auto& source : parser.sources) { addSource(std::move(source)); diff --git a/src/mbgl/style/style_parser.cpp b/src/mbgl/style/style_parser.cpp index 4c1fe593fc..63ba3d6fe8 100644 --- a/src/mbgl/style/style_parser.cpp +++ b/src/mbgl/style/style_parser.cpp @@ -11,6 +11,9 @@ #include <mapbox/geojsonvt.hpp> #include <mapbox/geojsonvt/convert.hpp> +#include <rapidjson/document.h> +#include <rapidjson/error/en.h> + #include <algorithm> namespace mbgl { @@ -96,7 +99,15 @@ void parseTileJSONMember(const JSValue& value, std::array<float, N>& target, con StyleParser::~StyleParser() = default; -void StyleParser::parse(const JSValue& document) { +void StyleParser::parse(const std::string& json) { + rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::CrtAllocator> document; + document.Parse<0>((const char *const)json.c_str()); + + if (document.HasParseError()) { + Log::Error(Event::ParseStyle, "Error parsing style JSON at %i: %s", document.GetErrorOffset(), rapidjson::GetParseError_En(document.GetParseError())); + return; + } + if (document.HasMember("version")) { int version = document["version"].GetInt(); if (version != 8) { diff --git a/src/mbgl/style/style_parser.hpp b/src/mbgl/style/style_parser.hpp index d3bb401d44..58c4d736f2 100644 --- a/src/mbgl/style/style_parser.hpp +++ b/src/mbgl/style/style_parser.hpp @@ -20,7 +20,7 @@ class StyleParser { public: ~StyleParser(); - void parse(const JSValue&); + void parse(const std::string&); std::string spriteURL; std::string glyphURL; |