mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
switch cached Trigger values to be opaque-and-generic, rather than assuming CallExpr's
This commit is contained in:
parent
9ada7ac4e7
commit
5eb37e4c78
9 changed files with 50 additions and 40 deletions
|
@ -350,7 +350,7 @@ bool Trigger::Eval()
|
|||
{
|
||||
Trigger* trigger = frame->GetTrigger();
|
||||
assert(trigger);
|
||||
assert(frame->GetCall());
|
||||
assert(frame->GetTriggerAssoc());
|
||||
assert(trigger->attached == this);
|
||||
|
||||
#ifdef DEBUG
|
||||
|
@ -359,7 +359,7 @@ bool Trigger::Eval()
|
|||
delete[] pname;
|
||||
#endif
|
||||
|
||||
auto queued = trigger->Cache(frame->GetCall(), v.get());
|
||||
auto queued = trigger->Cache(frame->GetTriggerAssoc(), v.get());
|
||||
trigger->Release();
|
||||
frame->ClearTrigger();
|
||||
|
||||
|
@ -404,7 +404,7 @@ void Trigger::Timeout()
|
|||
{
|
||||
Trigger* trigger = frame->GetTrigger();
|
||||
assert(trigger);
|
||||
assert(frame->GetCall());
|
||||
assert(frame->GetTriggerAssoc());
|
||||
assert(trigger->attached == this);
|
||||
|
||||
#ifdef DEBUG
|
||||
|
@ -413,7 +413,7 @@ void Trigger::Timeout()
|
|||
pname);
|
||||
delete[] pname;
|
||||
#endif
|
||||
auto queued = trigger->Cache(frame->GetCall(), v.get());
|
||||
auto queued = trigger->Cache(frame->GetTriggerAssoc(), v.get());
|
||||
trigger->Release();
|
||||
frame->ClearTrigger();
|
||||
|
||||
|
@ -480,12 +480,12 @@ void Trigger::Attach(Trigger* trigger)
|
|||
Hold();
|
||||
}
|
||||
|
||||
bool Trigger::Cache(const CallExpr* expr, Val* v)
|
||||
bool Trigger::Cache(const void* obj, Val* v)
|
||||
{
|
||||
if ( disabled || ! v )
|
||||
return false;
|
||||
|
||||
ValCache::iterator i = cache.find(expr);
|
||||
ValCache::iterator i = cache.find(obj);
|
||||
|
||||
if ( i != cache.end() )
|
||||
{
|
||||
|
@ -494,7 +494,7 @@ bool Trigger::Cache(const CallExpr* expr, Val* v)
|
|||
}
|
||||
|
||||
else
|
||||
cache.insert(ValCache::value_type(expr, v));
|
||||
cache.insert(ValCache::value_type(obj, v));
|
||||
|
||||
Ref(v);
|
||||
|
||||
|
@ -502,11 +502,11 @@ bool Trigger::Cache(const CallExpr* expr, Val* v)
|
|||
return true;
|
||||
}
|
||||
|
||||
Val* Trigger::Lookup(const CallExpr* expr)
|
||||
Val* Trigger::Lookup(const void* obj)
|
||||
{
|
||||
assert(! disabled);
|
||||
|
||||
ValCache::iterator i = cache.find(expr);
|
||||
ValCache::iterator i = cache.find(obj);
|
||||
return (i != cache.end()) ? i->second : 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue