Skip to content

Commit 0bd8a4e

Browse files
authored
Merge pull request #811 from MarcMil/fix-type-refinement
Add ignoreTypes to fix Table array refinements
2 parents 5bf58f2 + 0a253bd commit 0bd8a4e

File tree

1 file changed

+24
-59
lines changed

1 file changed

+24
-59
lines changed

soot-infoflow-summaries/summariesManual/com.google.common.collect.Table.xml

Lines changed: 24 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,25 @@
44
<method id="java.util.Set cellSet()">
55
<flows>
66
<flow isAlias="false" typeChecking="false">
7-
<from sourceSinkType="Field"
8-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" />
9-
<to sourceSinkType="Return"
10-
AccessPath="[java.util.Collection: java.lang.Object[] innerArray]"
11-
AccessPathTypes="[java.lang.Object[]]" />
7+
<from sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" />
8+
<to sourceSinkType="Return" AccessPath="[java.util.Collection: java.lang.Object[] innerArray]" AccessPathTypes="[java.lang.Object[]]" />
129
</flow>
1310
</flows>
1411
</method>
1512
<method id="void clear()">
1613
<clears>
17-
<clear sourceSinkType="Field"
18-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" />
14+
<clear sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" />
1915
</clears>
2016
</method>
2117
<method id="java.util.Map column(java.lang.Object)">
2218
<constraints>
2319
<key sourceSinkType="Any" />
24-
<key sourceSinkType="Parameter"
25-
ParameterIndex="0" />
20+
<key sourceSinkType="Parameter" ParameterIndex="0" />
2621
</constraints>
2722
<flows>
2823
<flow isAlias="false" typeChecking="false">
29-
<from sourceSinkType="Field"
30-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]"
31-
constrained="true" />
32-
<to sourceSinkType="Return"
33-
AccessPath="[java.util.Map: java.lang.Object[] values]"
34-
constrained="keep" />
24+
<from sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" constrained="true" />
25+
<to sourceSinkType="Return" AccessPath="[java.util.Map: java.lang.Object[] values]" constrained="keep" />
3526
</flow>
3627
</flows>
3728
</method>
@@ -46,10 +37,8 @@
4637
<key sourceSinkType="Parameter" ParameterIndex="1" />
4738
</constraints>
4839
<flows>
49-
<flow isAlias="false" typeChecking="false">
50-
<from sourceSinkType="Field"
51-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]"
52-
constrained="true" />
40+
<flow isAlias="false" typeChecking="false" ignoreTypes="true">
41+
<from sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" constrained="true" />
5342
<to sourceSinkType="Return" />
5443
</flow>
5544
</flows>
@@ -62,38 +51,26 @@
6251
</constraints>
6352
<flows>
6453
<!-- get prev element -->
65-
<flow isAlias="false" typeChecking="false" final="true">
66-
<from sourceSinkType="Field"
67-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]"
68-
constrained="true" />
54+
<flow isAlias="false" typeChecking="false" final="true" ignoreTypes="true">
55+
<from sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" constrained="true" />
6956
<to sourceSinkType="Return" />
7057
</flow>
7158
<!-- add new element -->
7259
<flow isAlias="false" typeChecking="false" final="true">
73-
<from sourceSinkType="Parameter"
74-
ParameterIndex="2" />
75-
<to sourceSinkType="Field"
76-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]"
77-
constrained="true" />
60+
<from sourceSinkType="Parameter" ParameterIndex="2" />
61+
<to sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" constrained="true" />
7862
</flow>
7963
</flows>
8064
<clears>
8165
<!-- remove prev element -->
82-
<clear sourceSinkType="Field"
83-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]"
84-
preventPropagation="false"
85-
constrained="true" />
66+
<clear sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" preventPropagation="false" constrained="true" />
8667
</clears>
8768
</method>
8869
<method id="void putAll(com.google.common.collect.Table)">
8970
<flows>
9071
<flow isAlias="false" typeChecking="false" final="true">
91-
<from sourceSinkType="Parameter"
92-
ParameterIndex="0"
93-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" />
94-
<to sourceSinkType="Field"
95-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]"
96-
constrained="keep" />
72+
<from sourceSinkType="Parameter" ParameterIndex="0" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" />
73+
<to sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" constrained="keep" />
9774
</flow>
9875
</flows>
9976
</method>
@@ -103,34 +80,24 @@
10380
<key sourceSinkType="Parameter" ParameterIndex="1" />
10481
</constraints>
10582
<flows>
106-
<flow isAlias="false" typeChecking="false" final="true">
107-
<from sourceSinkType="Field"
108-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]"
109-
constrained="true" />
83+
<flow isAlias="false" typeChecking="false" final="true" ignoreTypes="true">
84+
<from sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" constrained="true" />
11085
<to sourceSinkType="Return" />
11186
</flow>
11287
</flows>
11388
<clears>
114-
<clear sourceSinkType="Field"
115-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]"
116-
constrained="true"
117-
preventPropagation="false" />
89+
<clear sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" constrained="true" preventPropagation="false" />
11890
</clears>
11991
</method>
12092
<method id="java.util.Map row(java.lang.Object)">
12193
<constraints>
122-
<key sourceSinkType="Parameter"
123-
ParameterIndex="0" />
94+
<key sourceSinkType="Parameter" ParameterIndex="0" />
12495
<key sourceSinkType="Any" />
12596
</constraints>
12697
<flows>
12798
<flow isAlias="false" typeChecking="false">
128-
<from sourceSinkType="Field"
129-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]"
130-
constrained="true" />
131-
<to sourceSinkType="Return"
132-
AccessPath="[java.util.Map: java.lang.Object[] values]"
133-
constrained="keep" />
99+
<from sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" constrained="true" />
100+
<to sourceSinkType="Return" AccessPath="[java.util.Map: java.lang.Object[] values]" constrained="keep" />
134101
</flow>
135102
</flows>
136103
</method>
@@ -142,12 +109,10 @@
142109
<method id="java.util.Collection values()">
143110
<flows>
144111
<flow isAlias="false" typeChecking="false">
145-
<from sourceSinkType="Field"
146-
AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" />
147-
<to sourceSinkType="Return"
148-
AccessPath="[java.util.Collection: java.lang.Object[] innerArray]" />
112+
<from sourceSinkType="Field" AccessPath="[com.google.common.collect.Table: java.lang.Object[][] table]" />
113+
<to sourceSinkType="Return" AccessPath="[java.util.Collection: java.lang.Object[] innerArray]" />
149114
</flow>
150115
</flows>
151116
</method>
152117
</methods>
153-
</summary>
118+
</summary>

0 commit comments

Comments
 (0)