summaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2017-02-23 14:51:07 +0100
committerArne H Juul <arnej@yahoo-inc.com>2017-02-23 14:51:07 +0100
commitefea8355c6314ad05d63b8bd688f2ded4470b08e (patch)
treef7056ff053912f94169dd8a306f06a4e3bcd6560 /searchsummary
parentbc717833cccf027b017b2d901ffa9f0bf27eccdc (diff)
resolve to Symbol outside loops
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp9
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp16
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);
}
}
}