# HG changeset patch # User Lukas Stadler # Date 1347528457 -7200 # Node ID f3dcc071d696ef5822d4112c89ad29151ac9176d # Parent ccdf43a092040795ecfeae6a6898a870d73a589b fix for partial escape analysis bugs (related to StoreIndexed and monitors) diff -r ccdf43a09204 -r f3dcc071d696 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/ea/PartialEscapeAnalysisPhase.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/ea/PartialEscapeAnalysisPhase.java Wed Sep 12 16:22:44 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/ea/PartialEscapeAnalysisPhase.java Thu Sep 13 11:27:37 2012 +0200 @@ -599,6 +599,9 @@ if (index < 0 || index >= arrayObj.fieldState.length) { // out of bounds or not constant replaceWithMaterialized(array, x, state, arrayObj); + if (valueObj != null) { + replaceWithMaterialized(value, x, state, valueObj); + } } else { arrayObj.fieldState[index] = value; if (changeGraph) { @@ -731,6 +734,11 @@ } } }); + for (ObjectState obj : state.states()) { + if (obj.lockCount > 0) { + virtual.add(obj); + } + } ArrayDeque queue = new ArrayDeque<>(virtual); while (!queue.isEmpty()) {