mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
TablePatternMatcher: Use const StringValPtr& instead of const StringVal*
This commit is contained in:
parent
c426304c27
commit
501b582bc7
5 changed files with 9 additions and 9 deletions
|
@ -2545,7 +2545,7 @@ ValPtr IndexExpr::Fold(Val* v1, Val* v2) const {
|
||||||
|
|
||||||
case TYPE_TABLE:
|
case TYPE_TABLE:
|
||||||
if ( is_pattern_table )
|
if ( is_pattern_table )
|
||||||
return v1->AsTableVal()->LookupPattern(v2->AsListVal()->Idx(0)->AsStringVal());
|
return v1->AsTableVal()->LookupPattern({NewRef{}, v2->AsListVal()->Idx(0)->AsStringVal()});
|
||||||
|
|
||||||
v = v1->AsTableVal()->FindOrDefault({NewRef{}, v2});
|
v = v1->AsTableVal()->FindOrDefault({NewRef{}, v2});
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1440,7 +1440,7 @@ public:
|
||||||
|
|
||||||
void Clear() { matcher.reset(); }
|
void Clear() { matcher.reset(); }
|
||||||
|
|
||||||
VectorValPtr Lookup(const StringVal* s);
|
VectorValPtr Lookup(const StringValPtr& s);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void Build();
|
void Build();
|
||||||
|
@ -1463,7 +1463,7 @@ private:
|
||||||
std::vector<ValPtr> matcher_yields;
|
std::vector<ValPtr> matcher_yields;
|
||||||
};
|
};
|
||||||
|
|
||||||
VectorValPtr detail::TablePatternMatcher::Lookup(const StringVal* s) {
|
VectorValPtr detail::TablePatternMatcher::Lookup(const StringValPtr& s) {
|
||||||
auto results = make_intrusive<VectorVal>(vtype);
|
auto results = make_intrusive<VectorVal>(vtype);
|
||||||
|
|
||||||
if ( ! matcher ) {
|
if ( ! matcher ) {
|
||||||
|
@ -2016,7 +2016,7 @@ TableValPtr TableVal::LookupSubnetValues(const SubNetVal* search) {
|
||||||
return nt;
|
return nt;
|
||||||
}
|
}
|
||||||
|
|
||||||
VectorValPtr TableVal::LookupPattern(const StringVal* s) {
|
VectorValPtr TableVal::LookupPattern(const StringValPtr& s) {
|
||||||
if ( ! pattern_matcher )
|
if ( ! pattern_matcher )
|
||||||
reporter->InternalError("LookupPattern called on wrong table type");
|
reporter->InternalError("LookupPattern called on wrong table type");
|
||||||
|
|
||||||
|
|
|
@ -867,7 +867,7 @@ public:
|
||||||
// For a table[pattern], return a vector of all yields matching
|
// For a table[pattern], return a vector of all yields matching
|
||||||
// the given string.
|
// the given string.
|
||||||
// Causes an internal error if called for any other kind of table.
|
// Causes an internal error if called for any other kind of table.
|
||||||
VectorValPtr LookupPattern(const StringVal* s);
|
VectorValPtr LookupPattern(const StringValPtr& s);
|
||||||
|
|
||||||
// Sets the timestamp for the given index to network time.
|
// Sets the timestamp for the given index to network time.
|
||||||
// Returns false if index does not exist.
|
// Returns false if index does not exist.
|
||||||
|
|
|
@ -45,7 +45,7 @@ ValPtr index_table__CPP(const TableValPtr& t, vector<ValPtr> indices) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ValPtr index_patstr_table__CPP(const TableValPtr& t, vector<ValPtr> indices) {
|
ValPtr index_patstr_table__CPP(const TableValPtr& t, vector<ValPtr> indices) {
|
||||||
return t->LookupPattern(indices[0]->AsStringVal());
|
return t->LookupPattern(cast_intrusive<StringVal>(indices[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
ValPtr index_vec__CPP(const VectorValPtr& vec, int index) {
|
ValPtr index_vec__CPP(const VectorValPtr& vec, int index) {
|
||||||
|
|
|
@ -1061,7 +1061,7 @@ internal-op When-PatStr-Index
|
||||||
type VV
|
type VV
|
||||||
eval auto args = z.aux->ToListVal(frame);
|
eval auto args = z.aux->ToListVal(frame);
|
||||||
auto arg0 = args->Idx(0);
|
auto arg0 = args->Idx(0);
|
||||||
auto v = frame[z.v2].table_val->LookupPattern(arg0->AsStringVal());
|
auto v = frame[z.v2].table_val->LookupPattern({NewRef{}, arg0->AsStringVal()});
|
||||||
if ( IndexExprWhen::evaluating > 0 )
|
if ( IndexExprWhen::evaluating > 0 )
|
||||||
IndexExprWhen::results.emplace_back(v);
|
IndexExprWhen::results.emplace_back(v);
|
||||||
AssignV1(BuildVal(v, z.t))
|
AssignV1(BuildVal(v, z.t))
|
||||||
|
@ -1081,12 +1081,12 @@ eval EvalTableIndex(z.c.ToVal(z.t))
|
||||||
internal-assignment-op Table-PatStr-Index1
|
internal-assignment-op Table-PatStr-Index1
|
||||||
type VVV
|
type VVV
|
||||||
assign-val v
|
assign-val v
|
||||||
eval auto v = frame[z.v2].table_val->LookupPattern(frame[z.v3].AsString());
|
eval auto v = frame[z.v2].table_val->LookupPattern({NewRef{}, frame[z.v3].AsString()});
|
||||||
|
|
||||||
internal-assignment-op Table-PatStr-Index1
|
internal-assignment-op Table-PatStr-Index1
|
||||||
type VVC
|
type VVC
|
||||||
assign-val v
|
assign-val v
|
||||||
eval auto v = frame[z.v2].table_val->LookupPattern(z.c.AsString());
|
eval auto v = frame[z.v2].table_val->LookupPattern({NewRef{}, z.c.AsString()});
|
||||||
|
|
||||||
# This version is for a variable v3.
|
# This version is for a variable v3.
|
||||||
internal-op Index-String
|
internal-op Index-String
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue