mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
logging: Switch index-assignment of raw pointers to emplace_back()
This commit is contained in:
parent
245fd0c94f
commit
a9290cc031
2 changed files with 10 additions and 6 deletions
|
@ -1158,9 +1158,10 @@ bool Manager::WriteToFilters(const Manager::Stream* stream, zeek::RecordValPtr c
|
||||||
if ( zeek::plugin_mgr->HavePluginForHook(zeek::plugin::HOOK_LOG_WRITE) ) {
|
if ( zeek::plugin_mgr->HavePluginForHook(zeek::plugin::HOOK_LOG_WRITE) ) {
|
||||||
// The current HookLogWrite API takes a threading::Value**.
|
// The current HookLogWrite API takes a threading::Value**.
|
||||||
// Fabricate the pointer array on the fly. Mutation is allowed.
|
// Fabricate the pointer array on the fly. Mutation is allowed.
|
||||||
std::vector<threading::Value*> vals(rec.size());
|
std::vector<threading::Value*> vals;
|
||||||
for ( size_t i = 0; i < rec.size(); i++ )
|
vals.reserve(rec.size());
|
||||||
vals[i] = &rec[i];
|
for ( auto& v : rec )
|
||||||
|
vals.emplace_back(&v);
|
||||||
|
|
||||||
bool res =
|
bool res =
|
||||||
zeek::plugin_mgr->HookLogWrite(filter->writer->GetType()->AsEnumType()->Lookup(
|
zeek::plugin_mgr->HookLogWrite(filter->writer->GetType()->AsEnumType()->Lookup(
|
||||||
|
|
|
@ -219,16 +219,19 @@ bool WriterBackend::Write(int arg_num_fields, zeek::Span<detail::LogRecord> reco
|
||||||
//
|
//
|
||||||
// We keep the raw pointer for this API, as threading::Value
|
// We keep the raw pointer for this API, as threading::Value
|
||||||
// itself manages strings, sets and vectors using raw pointers,
|
// itself manages strings, sets and vectors using raw pointers,
|
||||||
// so this seems more consistent than mixing.
|
// so this is more consistent than mixing.
|
||||||
std::vector<Value*> valps(num_fields);
|
std::vector<Value*> valps;
|
||||||
|
valps.reserve(num_fields);
|
||||||
|
|
||||||
for ( size_t j = 0; j < records.size(); j++ ) {
|
for ( size_t j = 0; j < records.size(); j++ ) {
|
||||||
auto& write_vals = records[j];
|
auto& write_vals = records[j];
|
||||||
for ( int f = 0; f < num_fields; f++ )
|
for ( int f = 0; f < num_fields; f++ )
|
||||||
valps[f] = &write_vals[f];
|
valps.emplace_back(&write_vals[f]);
|
||||||
|
|
||||||
success = DoWrite(num_fields, fields, &valps[0]);
|
success = DoWrite(num_fields, fields, &valps[0]);
|
||||||
|
|
||||||
|
valps.clear();
|
||||||
|
|
||||||
if ( ! success )
|
if ( ! success )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue