From 70e577580717ef643d844980c983cc880a58ce7a Mon Sep 17 00:00:00 2001 From: "r.kuznetsov" Date: Wed, 13 Jun 2018 11:50:51 +0300 Subject: [PATCH] Fixed usage of classificatory in KML library --- kml/serdes.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/kml/serdes.cpp b/kml/serdes.cpp index d556c79429..0fbb0fdeed 100644 --- a/kml/serdes.cpp +++ b/kml/serdes.cpp @@ -349,15 +349,18 @@ void SaveBookmarkExtendedData(KmlWriter::WriterWrapper & writer, BookmarkData co SaveLocalizableString(writer, bookmarkData.m_name, "name", kIndent6); SaveLocalizableString(writer, bookmarkData.m_description, "description", kIndent6); - std::vector types; - types.reserve(bookmarkData.m_featureTypes.size()); - auto const & c = classif(); - if (!c.HasTypesMapping()) - MYTHROW(SerializerKml::SerializeException, ("Types mapping is not loaded.")); - for (auto const & t : bookmarkData.m_featureTypes) - types.push_back(c.GetReadableObjectName(c.GetTypeForIndex(t))); + if (!bookmarkData.m_featureTypes.empty()) + { + std::vector types; + types.reserve(bookmarkData.m_featureTypes.size()); + auto const & c = classif(); + if (!c.HasTypesMapping()) + MYTHROW(SerializerKml::SerializeException, ("Types mapping is not loaded.")); + for (auto const & t : bookmarkData.m_featureTypes) + types.push_back(c.GetReadableObjectName(c.GetTypeForIndex(t))); - SaveStringsArray(writer, types, "featureTypes", kIndent6); + SaveStringsArray(writer, types, "featureTypes", kIndent6); + } if (!bookmarkData.m_customName.empty()) SaveLocalizableString(writer, bookmarkData.m_customName, "customName", kIndent6);