diff options
author | Arne H Juul <arnej@yahoo-inc.com> | 2017-02-23 14:51:07 +0100 |
---|---|---|
committer | Arne H Juul <arnej@yahoo-inc.com> | 2017-02-23 14:51:07 +0100 |
commit | efea8355c6314ad05d63b8bd688f2ded4470b08e (patch) | |
tree | f7056ff053912f94169dd8a306f06a4e3bcd6560 /searchsummary | |
parent | bc717833cccf027b017b2d901ffa9f0bf27eccdc (diff) |
resolve to Symbol outside loops
Diffstat (limited to 'searchsummary')
-rw-r--r-- | searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp | 9 | ||||
-rw-r--r-- | searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp | 16 |
2 files changed, 14 insertions, 11 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp index 0922b231b10..e2dda337e73 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp @@ -43,7 +43,8 @@ GeoPositionDFW::insertField(uint32_t docid, GeneralResult *, GetDocsumsState * d ResType, vespalib::slime::Inserter &target) { using vespalib::slime::Cursor; - using vespalib::slime::ObjectInserter; + using vespalib::slime::ObjectSymbolInserter; + using vespalib::slime::Symbol; using vespalib::slime::ArrayInserter; const IAttributeVector & attribute = vec(*dsState); @@ -51,14 +52,16 @@ GeoPositionDFW::insertField(uint32_t docid, GeneralResult *, GetDocsumsState * d uint32_t entries = attribute.getValueCount(docid); Cursor &arr = target.insertArray(); if (attribute.hasWeightedSetType()) { + Symbol isym = arr.resolve("item"); + Symbol wsym = arr.resolve("weight"); std::vector<IAttributeVector::WeightedInt> elements(entries); entries = attribute.get(docid, &elements[0], entries); for (uint32_t i = 0; i < entries; ++i) { Cursor &elem = arr.addObject(); int64_t pos = elements[i].getValue(); - ObjectInserter obj(elem, "item"); + ObjectSymbolInserter obj(elem, isym); fmtZcurve(pos, obj); - elem.setLong("weight", elements[i].getWeight()); + elem.setLong(wsym, elements[i].getWeight()); } } else { std::vector<IAttributeVector::largeint_t> elements(16); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp index 6f545dfe88e..ded7db38fed 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp @@ -357,12 +357,12 @@ class SlimeFiller : public ConstFieldValueVisitor { virtual void visit(const MapFieldValue & v) { Cursor &a = _inserter.insertArray(); - Memory keymem("key"); - Memory valmem("value"); + Symbol keysym = a.resolve("key"); + Symbol valsym = a.resolve("value"); for (const auto & entry : v) { Cursor &c = a.addObject(); - ObjectInserter ki(c, keymem); - ObjectInserter vi(c, valmem); + ObjectSymbolInserter ki(c, keysym); + ObjectSymbolInserter vi(c, valsym); SlimeFiller keyConv(ki, _tokenize); SlimeFiller valConv(vi, _tokenize); @@ -456,15 +456,15 @@ class SlimeFiller : public ConstFieldValueVisitor { virtual void visit(const WeightedSetFieldValue &value) { Cursor &a = _inserter.insertArray(); if (value.size() > 0) { - Memory imem("item"); - Memory wmem("weight"); + Symbol isym = a.resolve("item"); + Symbol wsym = a.resolve("weight"); for (const auto & entry : value) { Cursor &o = a.addObject(); - ObjectInserter ki(o, imem); + ObjectSymbolInserter ki(o, isym); SlimeFiller conv(ki, _tokenize); entry.first->accept(conv); int weight = static_cast<const IntFieldValue &>(*entry.second).getValue(); - o.setLong(wmem, weight); + o.setLong(wsym, weight); } } } |