Skip to content

Commit 2482519

Browse files
committed
DataFlow: Cached second level scope.
1 parent 8d962a5 commit 2482519

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll

+3-2
Original file line numberDiff line numberDiff line change
@@ -1119,9 +1119,10 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
11191119

11201120
pragma[nomagic]
11211121
private SndLevelScopeOption getScope(RetNodeEx ret) {
1122-
result = SndLevelScopeOption::some(getSecondLevelScope(ret.asNode()))
1122+
result = SndLevelScopeOption::some(getSecondLevelScopeCached(ret.asNode()))
11231123
or
1124-
result instanceof SndLevelScopeOption::None and not exists(getSecondLevelScope(ret.asNode()))
1124+
result instanceof SndLevelScopeOption::None and
1125+
not exists(getSecondLevelScopeCached(ret.asNode()))
11251126
}
11261127

11271128
pragma[nomagic]

shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll

+3
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,9 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> {
616616
cached
617617
predicate forceCachingInSameStage() { any() }
618618

619+
cached
620+
DataFlowSecondLevelScope getSecondLevelScopeCached(Node n) { result = getSecondLevelScope(n) }
621+
619622
cached
620623
predicate nodeEnclosingCallable(Node n, DataFlowCallable c) { c = nodeGetEnclosingCallable(n) }
621624

0 commit comments

Comments
 (0)