diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-28 15:16:34 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-07-04 17:35:20 -0700 |
commit | d58bee6d90c7627d9059466f818bd296b01755ce (patch) | |
tree | 9d71651bea7996bd4597432d59e2709f6d8fe6cf /src/mbgl | |
parent | 1311ed24ad7b1f787727f086c341cd1a898fe06b (diff) | |
download | qtlocation-mapboxgl-d58bee6d90c7627d9059466f818bd296b01755ce.tar.gz |
[core] Avoid unnecessary copies in GlyphSet::insert
Diffstat (limited to 'src/mbgl')
-rw-r--r-- | src/mbgl/text/glyph_pbf.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/text/glyph_set.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/text/glyph_set.hpp | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/src/mbgl/text/glyph_pbf.cpp b/src/mbgl/text/glyph_pbf.cpp index 9046464c5c..b4dac4ce01 100644 --- a/src/mbgl/text/glyph_pbf.cpp +++ b/src/mbgl/text/glyph_pbf.cpp @@ -53,7 +53,7 @@ void parseGlyphPBF(mbgl::GlyphSet& glyphSet, const std::string& data) { } } - glyphSet.insert(glyph.id, glyph); + glyphSet.insert(glyph.id, std::move(glyph)); } } } diff --git a/src/mbgl/text/glyph_set.cpp b/src/mbgl/text/glyph_set.cpp index 8bd7e4ae03..0875a83850 100644 --- a/src/mbgl/text/glyph_set.cpp +++ b/src/mbgl/text/glyph_set.cpp @@ -6,11 +6,11 @@ namespace mbgl { -void GlyphSet::insert(uint32_t id, const SDFGlyph &glyph) { +void GlyphSet::insert(uint32_t id, SDFGlyph&& glyph) { auto it = sdfs.find(id); if (it == sdfs.end()) { // Glyph doesn't exist yet. - sdfs.emplace(id, glyph); + sdfs.emplace(id, std::move(glyph)); } else if (it->second.metrics == glyph.metrics) { if (it->second.bitmap != glyph.bitmap) { // The actual bitmap was updated; this is unsupported. @@ -18,7 +18,7 @@ void GlyphSet::insert(uint32_t id, const SDFGlyph &glyph) { } // At least try to update it in case it's currently unsused. // If it is already used; we won't attempt to update the glyph atlas texture. - it->second.bitmap = glyph.bitmap; + it->second.bitmap = std::move(glyph.bitmap); } else { // The metrics were updated; this is unsupported. Log::Warning(Event::Glyph, "Modified glyph has different metrics"); diff --git a/src/mbgl/text/glyph_set.hpp b/src/mbgl/text/glyph_set.hpp index 77e2cb1c95..37ffdb070a 100644 --- a/src/mbgl/text/glyph_set.hpp +++ b/src/mbgl/text/glyph_set.hpp @@ -7,7 +7,7 @@ namespace mbgl { class GlyphSet { public: - void insert(uint32_t id, const SDFGlyph &glyph); + void insert(uint32_t id, SDFGlyph&&); const std::map<uint32_t, SDFGlyph> &getSDFs() const; const Shaping getShaping(const std::u32string &string, float maxWidth, float lineHeight, float horizontalAlign, float verticalAlign, float justify, |