diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2016-12-12 13:10:33 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2016-12-19 15:07:34 +0000 |
commit | 21e82bbbe316f582ee11c8996e24e402f9342606 (patch) | |
tree | df3ac27e814e83f0cf914944bcf3f354fad64638 /src/lib/corelib/buildgraph/inputartifactscanner.h | |
parent | d3b1bf682181277e03299b1567631e144df12a67 (diff) |
Merge the C/C++ include scanners
We had one scanner for every type of file in the C family, all of which
collected the same set of includes, but under a different entry in the
scanner cache. Thus, lots of header files were unnecessarily re-scanned.
We fix this by making the scanner plugins declare a *list* of tags they
can handle and passing the currently active tags in the open() function.
========== Performance data for Rule Execution ==========
Old instruction count: 3775190973
New instruction count: 3441085735
Relative change: -9 %
Old peak memory usage: 18174216 Bytes
New peak memory usage: 17307600 Bytes
Relative change: -5 %
Change-Id: I222d1ec4bbfbc06ecd8c81faa55a500bc0da1ee6
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/lib/corelib/buildgraph/inputartifactscanner.h')
-rw-r--r-- | src/lib/corelib/buildgraph/inputartifactscanner.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/corelib/buildgraph/inputartifactscanner.h b/src/lib/corelib/buildgraph/inputartifactscanner.h index 62f976d5d..39304879c 100644 --- a/src/lib/corelib/buildgraph/inputartifactscanner.h +++ b/src/lib/corelib/buildgraph/inputartifactscanner.h @@ -140,9 +140,12 @@ private: const ScanResultCache::Result &scanResult, QList<FileResourceBase *> *artifactsToScan, InputArtifactScannerContext::ScannerResolvedDependenciesCache &cache); void handleDependency(ResolvedDependency &dependency); + void scanWithScannerPlugin(DependencyScanner *scanner, FileResourceBase *fileToBeScanned, + ScanResultCache::Result *scanResult); Artifact * const m_artifact; InputArtifactScannerContext *const m_context; + const char *m_fileTagsForScanner; bool m_newDependencyAdded; Logger m_logger; }; |