lower-level method for adding fields to records

This commit is contained in:
Vern Paxson 2021-03-18 10:07:15 -07:00
parent 22776167bb
commit 5f5ba3881c
2 changed files with 14 additions and 3 deletions

View file

@ -1043,6 +1043,17 @@ const char* RecordType::AddFields(const type_decl_list& others,
TableVal::SaveParseTimeTableState(this);
AddFieldsDirectly(others, add_log_attr);
RecordVal::ResizeParseTimeRecords(this);
TableVal::RebuildParseTimeTables();
return nullptr;
}
void RecordType::AddFieldsDirectly(const type_decl_list& others,
bool add_log_attr)
{
for ( const auto& td : others )
{
if ( add_log_attr )
@ -1059,9 +1070,6 @@ const char* RecordType::AddFields(const type_decl_list& others,
}
num_fields = types->length();
RecordVal::ResizeParseTimeRecords(this);
TableVal::RebuildParseTimeTables();
return nullptr;
}
void RecordType::DescribeFields(ODesc* d) const

View file

@ -623,6 +623,9 @@ public:
const char* AddFields(const type_decl_list& types,
bool add_log_attr = false);
void AddFieldsDirectly(const type_decl_list& types,
bool add_log_attr = false);
void Describe(ODesc* d) const override;
void DescribeReST(ODesc* d, bool roles_only = false) const override;
void DescribeFields(ODesc* d) const;