Java/Python: Fix some potential performance problems due to transitive deltas.

This commit is contained in:
Anders Schack-Mulligen
2021-10-14 16:10:00 +02:00
parent 8b6baa250c
commit 310eec07c1
3 changed files with 3 additions and 3 deletions

View File

@@ -14,5 +14,5 @@ class RemoteCallableMethod extends Method {
private predicate remoteCallableMethod(Method method) { private predicate remoteCallableMethod(Method method) {
method.getDeclaringType().getASupertype() instanceof TypeRemote method.getDeclaringType().getASupertype() instanceof TypeRemote
or or
exists(Method meth | remoteCallableMethod(meth) and method.getAnOverride() = meth) exists(Method meth | remoteCallableMethod(meth) and method.overrides(meth))
} }

View File

@@ -17,7 +17,7 @@ class Expr extends Expr_, AstNode {
* Whether this expression defines variable `v` * Whether this expression defines variable `v`
* If doing dataflow, then consider using SsaVariable.getDefinition() for more precision. * If doing dataflow, then consider using SsaVariable.getDefinition() for more precision.
*/ */
predicate defines(Variable v) { this.getASubExpression+().defines(v) } predicate defines(Variable v) { this.getASubExpression().defines(v) }
/** Whether this expression may have a side effect (as determined purely from its syntax) */ /** Whether this expression may have a side effect (as determined purely from its syntax) */
predicate hasSideEffects() { predicate hasSideEffects() {

View File

@@ -300,7 +300,7 @@ module PointsToInternal {
ssa_definition_points_to(var.getDefinition(), context, value, origin) ssa_definition_points_to(var.getDefinition(), context, value, origin)
or or
exists(EssaVariable prev | exists(EssaVariable prev |
ssaShortCut+(prev, var) and ssaShortCut(prev, var) and
variablePointsTo(prev, context, value, origin) variablePointsTo(prev, context, value, origin)
) )
} }