Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaksim Andrianov <maksimandrianov1@gmail.com>2020-12-08 14:26:07 +0300
committermpimenov <mpimenov@users.noreply.github.com>2021-01-25 22:29:29 +0300
commitd903219a8a98fc7b68a87215efa7e8a08e70e563 (patch)
tree0b2a0d63131f5d1141601567a436436f9a02d9bc /generator
parent0df8e92640115f6793e07b569114c7b5c0698b8e (diff)
[generator] Added call Clear().
Diffstat (limited to 'generator')
-rw-r--r--generator/osm_source.cpp8
-rw-r--r--generator/raw_generator.cpp7
-rw-r--r--generator/translators_pool.cpp2
-rw-r--r--generator/translators_pool.hpp2
4 files changed, 13 insertions, 6 deletions
diff --git a/generator/osm_source.cpp b/generator/osm_source.cpp
index 6a76031595..ab35f0f7e6 100644
--- a/generator/osm_source.cpp
+++ b/generator/osm_source.cpp
@@ -123,7 +123,10 @@ void ProcessOsmElementsFromXML(SourceReader & stream, function<void(OsmElement *
ProcessorOsmElementsFromXml processorOsmElementsFromXml(stream);
OsmElement element;
while (processorOsmElementsFromXml.TryRead(element))
+ {
processor(&element);
+ element.Clear();
+ }
}
void BuildIntermediateDataFromO5M(SourceReader & stream, cache::IntermediateDataWriter & cache,
@@ -144,7 +147,10 @@ void ProcessOsmElementsFromO5M(SourceReader & stream, function<void(OsmElement *
ProcessorOsmElementsFromO5M processorOsmElementsFromO5M(stream);
OsmElement element;
while (processorOsmElementsFromO5M.TryRead(element))
+ {
processor(&element);
+ element.Clear();
+ }
}
ProcessorOsmElementsFromO5M::ProcessorOsmElementsFromO5M(SourceReader & stream)
@@ -172,8 +178,6 @@ bool ProcessorOsmElementsFromO5M::TryRead(OsmElement & element)
}
};
- element = {};
-
// Be careful, we could call Nodes(), Members(), Tags() from O5MSource::Entity
// only once (!). Because these functions read data from file simultaneously with
// iterating in loop. Furthermore, into Tags() method calls Nodes.Skip() and Members.Skip(),
diff --git a/generator/raw_generator.cpp b/generator/raw_generator.cpp
index 8f80118847..3da779ddc5 100644
--- a/generator/raw_generator.cpp
+++ b/generator/raw_generator.cpp
@@ -183,8 +183,11 @@ bool RawGenerator::GenerateFilteredFeatures()
if (++element_pos != m_chunkSize)
continue;
- translators.Emit(std::move(elements));
- elements = std::vector<OsmElement>(m_chunkSize);
+ translators.Emit(elements);
+
+ for (auto & e : elements)
+ e.Clear();
+
element_pos = 0;
}
elements.resize(element_pos);
diff --git a/generator/translators_pool.cpp b/generator/translators_pool.cpp
index 137e4381db..fa9ec7b195 100644
--- a/generator/translators_pool.cpp
+++ b/generator/translators_pool.cpp
@@ -15,7 +15,7 @@ TranslatorsPool::TranslatorsPool(std::shared_ptr<TranslatorInterface> const & or
m_translators.Push(original->Clone());
}
-void TranslatorsPool::Emit(std::vector<OsmElement> && elements)
+void TranslatorsPool::Emit(std::vector<OsmElement> elements)
{
std::shared_ptr<TranslatorInterface> translator;
m_translators.WaitAndPop(translator);
diff --git a/generator/translators_pool.hpp b/generator/translators_pool.hpp
index f2e973cd24..d2c4c73f2c 100644
--- a/generator/translators_pool.hpp
+++ b/generator/translators_pool.hpp
@@ -18,7 +18,7 @@ public:
explicit TranslatorsPool(std::shared_ptr<TranslatorInterface> const & original,
size_t threadCount);
- void Emit(std::vector<OsmElement> && elements);
+ void Emit(std::vector<OsmElement> elements);
bool Finish();
private: