summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-06-05 13:27:03 +0200
committerGitHub <noreply@github.com>2018-06-05 13:27:03 +0200
commitf6cccb8d88a611eaefbeebc1eac5928a64fb7cb5 (patch)
tree1b3f603639a90351edc5151232457bbc9826fc9a /searchlib
parent5a28eb136ad06e05529fe1014f3e9bb00505e882 (diff)
parent2b500f23e6c07a884063517986d89636e6c5466d (diff)
Merge pull request #6086 from vespa-engine/toregge/keep-document-live-when-used-during-attribute-population
Keep document live as needed during attribute population.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/docstore/document_store_visitor/document_store_visitor_test.cpp14
-rw-r--r--searchlib/src/vespa/searchlib/docstore/documentstore.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/docstore/idocumentstore.h4
3 files changed, 11 insertions, 11 deletions
diff --git a/searchlib/src/tests/docstore/document_store_visitor/document_store_visitor_test.cpp b/searchlib/src/tests/docstore/document_store_visitor/document_store_visitor_test.cpp
index 247ee134854..ac645998198 100644
--- a/searchlib/src/tests/docstore/document_store_visitor/document_store_visitor_test.cpp
+++ b/searchlib/src/tests/docstore/document_store_visitor/document_store_visitor_test.cpp
@@ -114,18 +114,18 @@ class MyVisitor : public MyVisitorBase,
public:
using MyVisitorBase::MyVisitorBase;
- void visit(uint32_t lid, const Document &doc) override;
+ void visit(uint32_t lid, const std::shared_ptr<Document> &doc) override;
void visit(uint32_t lid) override;
};
void
-MyVisitor::visit(uint32_t lid, const Document &doc)
+MyVisitor::visit(uint32_t lid, const std::shared_ptr<Document> &doc)
{
++_visitCount;
assert(lid < _docIdLimit);
Document::UP expDoc(makeDoc(_repo, lid, _before));
- EXPECT_TRUE(*expDoc == doc);
+ EXPECT_TRUE(*expDoc == *doc);
_valid->slowSetBit(lid);
}
@@ -146,19 +146,19 @@ public:
using MyVisitorBase::MyVisitorBase;
virtual void
- visit(uint32_t lid, Document &doc) override;
+ visit(uint32_t lid, const std::shared_ptr<Document> &doc) override;
};
void
-MyRewriteVisitor::visit(uint32_t lid, Document &doc)
+MyRewriteVisitor::visit(uint32_t lid, const std::shared_ptr<Document> &doc)
{
++_visitCount;
assert(lid < _docIdLimit);
Document::UP expDoc(makeDoc(_repo, lid, _before));
- EXPECT_TRUE(*expDoc == doc);
+ EXPECT_TRUE(*expDoc == *doc);
_valid->slowSetBit(lid);
- doc.set("extra", "foo");
+ doc->set("extra", "foo");
}
diff --git a/searchlib/src/vespa/searchlib/docstore/documentstore.cpp b/searchlib/src/vespa/searchlib/docstore/documentstore.cpp
index 6345e414b99..9b88383bbf1 100644
--- a/searchlib/src/vespa/searchlib/docstore/documentstore.cpp
+++ b/searchlib/src/vespa/searchlib/docstore/documentstore.cpp
@@ -447,8 +447,8 @@ DocumentStore::WrapVisitor<Visitor>::visit(uint32_t lid,
value.set(std::move(buf), len);
}
if (! value.empty()) {
- document::Document::UP doc(value.deserializeDocument(_repo));
- _visitor.visit(lid, *doc);
+ std::shared_ptr<document::Document> doc(value.deserializeDocument(_repo));
+ _visitor.visit(lid, doc);
rewrite(lid, *doc);
} else {
visitRemove(lid);
diff --git a/searchlib/src/vespa/searchlib/docstore/idocumentstore.h b/searchlib/src/vespa/searchlib/docstore/idocumentstore.h
index 62b7b2891fc..a7302c9c1a5 100644
--- a/searchlib/src/vespa/searchlib/docstore/idocumentstore.h
+++ b/searchlib/src/vespa/searchlib/docstore/idocumentstore.h
@@ -16,7 +16,7 @@ class IDocumentStoreReadVisitor
{
public:
virtual ~IDocumentStoreReadVisitor() { }
- virtual void visit(uint32_t lid, const document::Document &doc) = 0;
+ virtual void visit(uint32_t lid, const std::shared_ptr<document::Document> &doc) = 0;
virtual void visit(uint32_t lid) = 0;
};
@@ -24,7 +24,7 @@ class IDocumentStoreRewriteVisitor
{
public:
virtual ~IDocumentStoreRewriteVisitor() { }
- virtual void visit(uint32_t lid, document::Document &doc) = 0;
+ virtual void visit(uint32_t lid, const std::shared_ptr<document::Document> &doc) = 0;
};
class IDocumentStoreVisitorProgress