java-topology/defects/meson/patch/meson-0001-extra-files-dedup-set.patch

19 lines
912 B
Diff

# UNDF: UNDF-2026-000000171
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index abc1234..def5678 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -843,6 +843,8 @@ class BuildTarget(Target):
self.extra_files: T.List[File] = []
+ # Shadow set for O(1) duplicate detection in add_deps / process path.
+ self._extra_files_set: T.Set[File] = set()
@@ -1569,7 +1571,10 @@ class BuildTarget(Target):
if isinstance(dep, dependencies.InternalDependency):
# Those parts that are internal.
self.process_sourcelist(dep.sources)
- self.extra_files.extend(f for f in dep.extra_files if f not in self.extra_files)
+ for f in dep.extra_files:
+ if f not in self._extra_files_set:
+ self._extra_files_set.add(f)
+ self.extra_files.append(f)