diff options
9 files changed, 21 insertions, 27 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp index fada441f718..47d94a716f7 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp @@ -78,7 +78,7 @@ CopyDFW::Init(const ResultConfig & config, const char *inputField) } void -CopyDFW::insertField(uint32_t /*docid*/, GeneralResult *gres, GetDocsumsState *state, ResType type, +CopyDFW::insertField(uint32_t /*docid*/, GeneralResult *gres, GetDocsumsState *, ResType type, vespalib::slime::Inserter &target) { int idx = gres->GetClass()->GetIndexFromEnumValue(_inputFieldEnumValue); @@ -128,7 +128,7 @@ CopyDFW::insertField(uint32_t /*docid*/, GeneralResult *gres, GetDocsumsState *s uint32_t len; const char *spt; // resolve field - entry->_resolve_field(&spt, &len, &state->_docSumFieldSpace); + entry->_resolve_field(&spt, &len); vespalib::Memory value(spt, len); target.insertString(value); break; } @@ -139,7 +139,7 @@ CopyDFW::insertField(uint32_t /*docid*/, GeneralResult *gres, GetDocsumsState *s uint32_t len; const char *dpt; // resolve field - entry->_resolve_field(&dpt, &len, &state->_docSumFieldSpace); + entry->_resolve_field(&dpt, &len); vespalib::Memory value(dpt, len); target.insertData(value); break; } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp index 31d174c72a8..4f1634042c1 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp @@ -30,8 +30,6 @@ GetDocsumsState::GetDocsumsState(GetDocsumsStateCallback &callback) _keywords(nullptr), _callback(callback), _dynteaser(), - _docSumFieldSpaceStore(), - _docSumFieldSpace(_docSumFieldSpaceStore, sizeof(_docSumFieldSpaceStore)), // only alloc buffer if needed _attrCtx(), _attributes(), _fieldWriterStates(), diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h index cbb6925c1e0..85d24d25c62 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h @@ -71,8 +71,6 @@ public: } _dynteaser; - char _docSumFieldSpaceStore[2048]; - search::RawBuf _docSumFieldSpace; std::unique_ptr<search::attribute::IAttributeContext> _attrCtx; std::vector<const search::attribute::IAttributeVector *> _attributes; std::vector<std::unique_ptr<DocsumFieldWriterState>> _fieldWriterStates; diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp index 666c5098ca4..e7a9840c47f 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp @@ -84,8 +84,7 @@ DynamicDocsumWriter::resolveInputClass(ResolveClassInfo &rci, uint32_t id) const constexpr uint32_t default_32bits_int = search::attribute::getUndefined<int32_t>(); constexpr uint64_t default_64bits_int = search::attribute::getUndefined<int64_t>(); -static void convertEntry(GetDocsumsState *state, - const ResConfigEntry *resCfg, +static void convertEntry(const ResConfigEntry *resCfg, const ResEntry *entry, Inserter &inserter, Slime &slime) @@ -120,7 +119,7 @@ static void convertEntry(GetDocsumsState *state, case RES_STRING: case RES_LONG_STRING: case RES_FEATUREDATA: - entry->_resolve_field(&ptr, &len, &state->_docSumFieldSpace); + entry->_resolve_field(&ptr, &len); if (len != 0) { inserter.insertString(Memory(ptr, len)); } @@ -128,13 +127,13 @@ static void convertEntry(GetDocsumsState *state, case RES_DATA: case RES_TENSOR: case RES_LONG_DATA: - entry->_resolve_field(&ptr, &len, &state->_docSumFieldSpace); + entry->_resolve_field(&ptr, &len); if (len != 0) { inserter.insertData(Memory(ptr, len)); } break; case RES_JSONSTRING: - entry->_resolve_field(&ptr, &len, &state->_docSumFieldSpace); + entry->_resolve_field(&ptr, &len); if (len != 0) { // note: 'JSONSTRING' really means 'structured data' size_t d = BinaryFormat::decode_into(Memory(ptr, len), slime, inserter); @@ -185,7 +184,7 @@ DynamicDocsumWriter::insertDocsum(const ResolveClassInfo & rci, uint32_t docid, } } else { if (rci.inputClass == rci.outputClass) { - convertEntry(state, outCfg, gres.GetEntry(i), inserter, slime); + convertEntry(outCfg, gres.GetEntry(i), inserter, slime); } else { int inIdx = rci.inputClass->GetIndexFromEnumValue(outCfg->_enumValue); const ResConfigEntry *inCfg = rci.inputClass->GetEntry(inIdx); @@ -193,7 +192,7 @@ DynamicDocsumWriter::insertDocsum(const ResolveClassInfo & rci, uint32_t docid, // copy field const ResEntry *entry = gres.GetEntry(inIdx); LOG_ASSERT(entry != nullptr); - convertEntry(state, outCfg, entry, inserter, slime); + convertEntry(outCfg, entry, inserter, slime); } } } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp index f9301557c0c..ef1ffded941 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp @@ -345,13 +345,13 @@ JuniperTeaserDFW::Init( } vespalib::stringref -DynamicTeaserDFW::getJuniperInput(GeneralResult *gres, GetDocsumsState *state) { +DynamicTeaserDFW::getJuniperInput(GeneralResult *gres) { int idx = gres->GetClass()->GetIndexFromEnumValue(_inputFieldEnumValue); ResEntry *entry = gres->GetEntry(idx); if (entry != nullptr) { const char *buf; uint32_t buflen; - entry->_resolve_field(&buf, &buflen, &state->_docSumFieldSpace); + entry->_resolve_field(&buf, &buflen); return vespalib::stringref(buf, buflen); } return vespalib::stringref(); @@ -428,7 +428,7 @@ void DynamicTeaserDFW::insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, ResType, vespalib::slime::Inserter &target) { - vespalib::stringref input = getJuniperInput(gres, state); + vespalib::stringref input = getJuniperInput(gres); if (input.length() > 0) { vespalib::string teaser = makeDynamicTeaser(docid, input, state); vespalib::Memory value(teaser.c_str(), teaser.size()); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/juniperdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/juniperdfw.h index f9a6a56e01a..d9a657038c4 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/juniperdfw.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/juniperdfw.h @@ -49,7 +49,7 @@ class DynamicTeaserDFW : public JuniperTeaserDFW public: DynamicTeaserDFW(juniper::Juniper * juniper) : JuniperTeaserDFW(juniper) { } - vespalib::stringref getJuniperInput(GeneralResult *gres, GetDocsumsState *state); + vespalib::stringref getJuniperInput(GeneralResult *gres); vespalib::string makeDynamicTeaser(uint32_t docid, vespalib::stringref input, GetDocsumsState *state); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp index 916f39a2b98..2c2ce860e39 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp @@ -65,11 +65,11 @@ MatchedElementsFilterDFW::~MatchedElementsFilterDFW() = default; namespace { void -decode_input_field_to_slime(const ResEntry& entry, search::RawBuf& target_buf, Slime& input_field_as_slime) +decode_input_field_to_slime(const ResEntry& entry, Slime& input_field_as_slime) { const char* buf; uint32_t buf_len; - entry._resolve_field(&buf, &buf_len, &target_buf); + entry._resolve_field(&buf, &buf_len); BinaryFormat::decode(vespalib::Memory(buf, buf_len), input_field_as_slime); } @@ -91,12 +91,11 @@ filter_matching_elements_in_input_field_while_converting_to_slime(const FieldVal } bool -resolve_input_field_as_slime(GeneralResult& result, GetDocsumsState& state, - int entry_idx, Slime& input_field_as_slime) +resolve_input_field_as_slime(GeneralResult& result, int entry_idx, Slime& input_field_as_slime) { ResEntry* entry = result.GetEntry(entry_idx); if (entry != nullptr) { - decode_input_field_to_slime(*entry, state._docSumFieldSpace, input_field_as_slime); + decode_input_field_to_slime(*entry, input_field_as_slime); return true; } return false; @@ -127,7 +126,7 @@ MatchedElementsFilterDFW::insertField(uint32_t docid, GeneralResult* result, Get assert(type == ResType::RES_JSONSTRING); int entry_idx = result->GetClass()->GetIndexFromEnumValue(_input_field_enum); Slime input_field; - if (resolve_input_field_as_slime(*result, *state, entry_idx, input_field)) { + if (resolve_input_field_as_slime(*result, entry_idx, input_field)) { Slime output_field; filter_matching_elements_in_input_field(input_field, get_matching_elements(docid, *state), output_field); inject(output_field.get(), target); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h b/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h index 547c21d7a3f..be3bb7570d2 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h @@ -80,7 +80,7 @@ struct ResEntry memcpy(&rlen, _pt, sizeof(rlen)); return rlen; } - void _resolve_field(const char **buf, uint32_t *buflen, search::RawBuf *) const + void _resolve_field(const char **buf, uint32_t *buflen) const { // precond: IsVariableSize(_type) *buf = (char *) _pt; diff --git a/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.cpp index c7c6984d792..c85a4fb5788 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.cpp @@ -27,7 +27,7 @@ TextExtractorDFW::init(const vespalib::string & fieldName, const vespalib::strin } void -TextExtractorDFW::insertField(uint32_t, GeneralResult *gres, GetDocsumsState *state, ResType, +TextExtractorDFW::insertField(uint32_t, GeneralResult *gres, GetDocsumsState *, ResType, vespalib::slime::Inserter &target) { vespalib::string extracted; @@ -35,7 +35,7 @@ TextExtractorDFW::insertField(uint32_t, GeneralResult *gres, GetDocsumsState *st if (entry != nullptr) { const char * buf = nullptr; uint32_t buflen = 0; - entry->_resolve_field(&buf, &buflen, &state->_docSumFieldSpace); + entry->_resolve_field(&buf, &buflen); // extract the text Tokenizer tokenizer(buf, buflen); while (tokenizer.hasMoreTokens()) { |