changeset 4585:c47ca28d164a

Create exception dispatch even if catch type is not initialized yet. Previously, when there were multiple exception handlers, and an uninitialized catch type was preceding another (initialized) catch type, no exception dispatch would be created. This could lead to a deopt every time one of the later exceptions was thrown.
author Andreas Woess <andreas.woess@jku.at>
date Mon, 13 Feb 2012 23:47:06 +0100
parents 7e5d8d1c74a1
children 05a6d48a6ace
files graal/com.oracle.max.graal.java/src/com/oracle/max/graal/java/GraphBuilderPhase.java
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.java/src/com/oracle/max/graal/java/GraphBuilderPhase.java	Tue Feb 14 12:29:11 2012 +0100
+++ b/graal/com.oracle.max.graal.java/src/com/oracle/max/graal/java/GraphBuilderPhase.java	Mon Feb 13 23:47:06 2012 +0100
@@ -1446,7 +1446,7 @@
             if (config.eagerResolving()) {
                 catchType = lookupType(block.handler.catchTypeCPI(), INSTANCEOF);
             }
-            boolean initialized = (catchType instanceof RiResolvedType) && ((RiResolvedType) catchType).isInitialized();
+            boolean initialized = (catchType instanceof RiResolvedType);
             if (initialized && config.getSkippedExceptionTypes() != null) {
                 RiResolvedType resolvedCatchType = (RiResolvedType) catchType;
                 for (RiResolvedType skippedType : config.getSkippedExceptionTypes()) {