mirror of
https://github.com/RGBCube/serenity
synced 2025-06-01 06:28:13 +00:00
LibIDL: Avoid unnecessary copies of imported paths
This commit is contained in:
parent
fe9e09fa3a
commit
72756f09f4
1 changed files with 15 additions and 13 deletions
|
@ -942,21 +942,23 @@ Interface& Parser::parse()
|
|||
top_level_resolved_imports().set(this_module, &interface);
|
||||
|
||||
Vector<Interface&> imports;
|
||||
HashTable<DeprecatedString> required_imported_paths;
|
||||
while (lexer.consume_specific("#import")) {
|
||||
consume_whitespace();
|
||||
assert_specific('<');
|
||||
auto path = lexer.consume_until('>');
|
||||
lexer.ignore();
|
||||
auto maybe_interface = resolve_import(path);
|
||||
if (maybe_interface.has_value()) {
|
||||
for (auto& entry : maybe_interface.value().required_imported_paths)
|
||||
required_imported_paths.set(entry);
|
||||
imports.append(maybe_interface.release_value());
|
||||
{
|
||||
HashTable<DeprecatedString> required_imported_paths;
|
||||
while (lexer.consume_specific("#import")) {
|
||||
consume_whitespace();
|
||||
assert_specific('<');
|
||||
auto path = lexer.consume_until('>');
|
||||
lexer.ignore();
|
||||
auto maybe_interface = resolve_import(path);
|
||||
if (maybe_interface.has_value()) {
|
||||
for (auto& entry : maybe_interface.value().required_imported_paths)
|
||||
required_imported_paths.set(entry);
|
||||
imports.append(maybe_interface.release_value());
|
||||
}
|
||||
consume_whitespace();
|
||||
}
|
||||
consume_whitespace();
|
||||
interface.required_imported_paths = move(required_imported_paths);
|
||||
}
|
||||
interface.required_imported_paths = required_imported_paths;
|
||||
|
||||
parse_non_interface_entities(true, interface);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue