mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
LibIDL: Avoid unnecessary copies of imported paths
This commit is contained in:
parent
fe9e09fa3a
commit
72756f09f4
Notes:
sideshowbarker
2024-07-17 01:04:03 +09:00
Author: https://github.com/BenWiederhake Commit: https://github.com/SerenityOS/serenity/commit/72756f09f4 Pull-request: https://github.com/SerenityOS/serenity/pull/19298
|
@ -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…
Reference in a new issue