Merge pull request #3762 from hvitved/dataflow/clear-contents

Data flow: Model field clearing
This commit is contained in:
Anders Schack-Mulligen
2020-06-24 10:19:50 +02:00
committed by GitHub
31 changed files with 558 additions and 79 deletions

View File

@@ -0,0 +1,38 @@
public class F {
Object Field1;
Object Field2;
public F() {
Field1 = new Object();
Field2 = new Object();
}
private void m() {
Object o = new Object();
F f = new F();
f.Field1 = o;
f.Field2 = o;
f.Field2 = null;
sink(f.Field1); // flow
sink(f.Field2); // no flow
f = new F();
f.Field2 = null;
sink(f.Field1); // flow
sink(f.Field2); // no flow
f = new F();
o = new Object();
f.Field1 = o;
f.Field2 = o;
m2(f);
}
private void m2(F f)
{
f.Field2 = null;
sink(f.Field1); // flow
sink(f.Field2); // no flow
}
public static void sink(Object o) { }
}

View File

@@ -26,3 +26,6 @@
| E.java:2:32:2:43 | new Object(...) | E.java:21:10:21:24 | bh2.buf.content |
| E.java:2:32:2:43 | new Object(...) | E.java:24:10:24:28 | p2.data.buf.content |
| E.java:2:32:2:43 | new Object(...) | E.java:30:10:30:27 | p.data.buf.content |
| F.java:5:14:5:25 | new Object(...) | F.java:20:10:20:17 | f.Field1 |
| F.java:10:16:10:27 | new Object(...) | F.java:15:10:15:17 | f.Field1 |
| F.java:24:9:24:20 | new Object(...) | F.java:33:10:33:17 | f.Field1 |