mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[evaluator] Avoid recording dependency sources and sinks when disabled
Short-circuit the logic here early to avoid the dependency logic if recording is disabled.
This commit is contained in:
@@ -414,6 +414,8 @@ private:
|
||||
typename std::enable_if<Request::isDependencySink>::type * = nullptr>
|
||||
void handleDependencySinkRequest(const Request &r,
|
||||
const typename Request::OutputType &o) {
|
||||
if (!recorder.isRecordingEnabled())
|
||||
return;
|
||||
evaluator::DependencyCollector collector(recorder);
|
||||
r.writeDependencySink(collector, o);
|
||||
}
|
||||
@@ -425,6 +427,8 @@ private:
|
||||
template <typename Request,
|
||||
typename std::enable_if<Request::isDependencySource>::type * = nullptr>
|
||||
void handleDependencySourceRequest(const Request &r) {
|
||||
if (!recorder.isRecordingEnabled())
|
||||
return;
|
||||
auto source = r.readDependencySource(recorder);
|
||||
if (!source.isNull() && source.get()->isPrimary()) {
|
||||
recorder.handleDependencySourceRequest(r, source.get());
|
||||
|
||||
@@ -94,6 +94,9 @@ class DependencyRecorder {
|
||||
public:
|
||||
DependencyRecorder(bool shouldRecord) : shouldRecord(shouldRecord) {}
|
||||
|
||||
/// Whether dependency recording is enabled.
|
||||
bool isRecordingEnabled() const { return shouldRecord; }
|
||||
|
||||
/// Push a new empty set onto the activeRequestReferences stack.
|
||||
template<typename Request>
|
||||
void beginRequest();
|
||||
|
||||
Reference in New Issue
Block a user