mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Merge remote-tracking branch 'origin/topic/timw/val-avoid-type-casting'
* origin/topic/timw/val-avoid-type-casting: Avoid calling typecasts in Val when we have direct access to the underlying value object
This commit is contained in:
commit
19702b06e7
3 changed files with 14 additions and 15 deletions
4
CHANGES
4
CHANGES
|
@ -1,3 +1,7 @@
|
||||||
|
7.0.0-dev.191 | 2024-04-29 09:06:24 -0700
|
||||||
|
|
||||||
|
* Avoid calling typecasts in Val when we have direct access to the underlying value object (Tim Wojtulewicz, Corelight)
|
||||||
|
|
||||||
7.0.0-dev.187 | 2024-04-26 12:29:18 -0700
|
7.0.0-dev.187 | 2024-04-26 12:29:18 -0700
|
||||||
|
|
||||||
* Gracefully handle empty/missing shadow file (Peter Cullen, Corelight)
|
* Gracefully handle empty/missing shadow file (Peter Cullen, Corelight)
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
7.0.0-dev.187
|
7.0.0-dev.191
|
||||||
|
|
23
src/Val.cc
23
src/Val.cc
|
@ -742,22 +742,18 @@ StringVal::~StringVal() { delete string_val; }
|
||||||
|
|
||||||
ValPtr StringVal::SizeVal() const { return val_mgr->Count(string_val->Len()); }
|
ValPtr StringVal::SizeVal() const { return val_mgr->Count(string_val->Len()); }
|
||||||
|
|
||||||
int StringVal::Len() const { return AsString()->Len(); }
|
int StringVal::Len() const { return string_val->Len(); }
|
||||||
|
|
||||||
const u_char* StringVal::Bytes() const { return AsString()->Bytes(); }
|
const u_char* StringVal::Bytes() const { return string_val->Bytes(); }
|
||||||
|
|
||||||
const char* StringVal::CheckString() const { return AsString()->CheckString(); }
|
const char* StringVal::CheckString() const { return string_val->CheckString(); }
|
||||||
|
|
||||||
std::pair<const char*, size_t> StringVal::CheckStringWithSize() const { return AsString()->CheckStringWithSize(); }
|
std::pair<const char*, size_t> StringVal::CheckStringWithSize() const { return string_val->CheckStringWithSize(); }
|
||||||
|
|
||||||
string StringVal::ToStdString() const {
|
string StringVal::ToStdString() const { return {(char*)string_val->Bytes(), static_cast<size_t>(string_val->Len())}; }
|
||||||
auto* bs = AsString();
|
|
||||||
return {(char*)bs->Bytes(), static_cast<size_t>(bs->Len())};
|
|
||||||
}
|
|
||||||
|
|
||||||
string_view StringVal::ToStdStringView() const {
|
string_view StringVal::ToStdStringView() const {
|
||||||
auto* bs = AsString();
|
return {(char*)string_val->Bytes(), static_cast<size_t>(string_val->Len())};
|
||||||
return {(char*)bs->Bytes(), static_cast<size_t>(bs->Len())};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
StringVal* StringVal::ToUpper() {
|
StringVal* StringVal::ToUpper() {
|
||||||
|
@ -1223,7 +1219,7 @@ bool PatternVal::AddTo(Val* v, bool /* is_first_init */) const {
|
||||||
|
|
||||||
PatternVal* pv = v->AsPatternVal();
|
PatternVal* pv = v->AsPatternVal();
|
||||||
|
|
||||||
RE_Matcher* re = new RE_Matcher(AsPattern()->PatternText());
|
RE_Matcher* re = new RE_Matcher(re_val->PatternText());
|
||||||
re->AddPat(pv->AsPattern()->PatternText());
|
re->AddPat(pv->AsPattern()->PatternText());
|
||||||
re->Compile();
|
re->Compile();
|
||||||
|
|
||||||
|
@ -1233,7 +1229,7 @@ bool PatternVal::AddTo(Val* v, bool /* is_first_init */) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void PatternVal::SetMatcher(RE_Matcher* re) {
|
void PatternVal::SetMatcher(RE_Matcher* re) {
|
||||||
delete AsPattern();
|
delete re_val;
|
||||||
re_val = re;
|
re_val = re;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1243,7 +1239,7 @@ bool PatternVal::MatchAnywhere(const String* s) const { return re_val->MatchAnyw
|
||||||
|
|
||||||
void PatternVal::ValDescribe(ODesc* d) const {
|
void PatternVal::ValDescribe(ODesc* d) const {
|
||||||
d->Add("/");
|
d->Add("/");
|
||||||
d->Add(AsPattern()->PatternText());
|
d->Add(re_val->PatternText());
|
||||||
d->Add("/");
|
d->Add("/");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2668,7 +2664,6 @@ ValPtr TableVal::DoClone(CloneState* state) {
|
||||||
auto tv = make_intrusive<TableVal>(table_type, init_attrs);
|
auto tv = make_intrusive<TableVal>(table_type, init_attrs);
|
||||||
state->NewClone(this, tv);
|
state->NewClone(this, tv);
|
||||||
|
|
||||||
const PDict<TableEntryVal>* tbl = AsTable();
|
|
||||||
for ( const auto& tble : *table_val ) {
|
for ( const auto& tble : *table_val ) {
|
||||||
auto key = tble.GetHashKey();
|
auto key = tble.GetHashKey();
|
||||||
auto* val = tble.value;
|
auto* val = tble.value;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue