You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2012/09/28 18:40:30 UTC

svn commit: r1391534 - /commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/analysis/ClassDifferentiator.java

Author: luc
Date: Fri Sep 28 16:40:30 2012
New Revision: 1391534

URL: http://svn.apache.org/viewvc?rev=1391534&view=rev
Log:
Fixed generated bytecode for getPrimitiveField private method.

Modified:
    commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/analysis/ClassDifferentiator.java

Modified: commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/analysis/ClassDifferentiator.java
URL: http://svn.apache.org/viewvc/commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/analysis/ClassDifferentiator.java?rev=1391534&r1=1391533&r2=1391534&view=diff
==============================================================================
--- commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/analysis/ClassDifferentiator.java (original)
+++ commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/analysis/ClassDifferentiator.java Fri Sep 28 16:40:30 2012
@@ -197,15 +197,14 @@ public class ClassDifferentiator {
                            null, null);
         Label start     = new Label();
         Label end       = new Label();
-        Label handler   = new Label();
-        method.visitTryCatchBlock(start, end, handler, Type.getInternalName(IllegalAccessException.class));
-        method.visitTryCatchBlock(start, end, handler, Type.getInternalName(NoSuchFieldException.class));
+        method.visitTryCatchBlock(start, end, end, Type.getInternalName(IllegalAccessException.class));
+        method.visitTryCatchBlock(start, end, end, Type.getInternalName(NoSuchFieldException.class));
         method.visitLabel(start);
         method.visitLdcInsn(Type.getType(primitiveClass));
         method.visitVarInsn(Opcodes.ALOAD, 1);
         method.visitMethodInsn(Opcodes.INVOKEVIRTUAL, Type.getInternalName(Class.class),
                                "getDeclaredField",
-                               Type.getMethodDescriptor(Type.getType(String.class), Type.getType(Field.class)));
+                               Type.getMethodDescriptor(Type.getType(Field.class), Type.getType(String.class)));
         method.visitVarInsn(Opcodes.ASTORE, 2);
         method.visitVarInsn(Opcodes.ALOAD, 2);
         method.visitInsn(Opcodes.ICONST_1);
@@ -219,9 +218,8 @@ public class ClassDifferentiator {
         method.visitMethodInsn(Opcodes.INVOKEVIRTUAL, Type.getInternalName(Field.class),
                                "get",
                                Type.getMethodDescriptor(Type.getType(Object.class), Type.getType(Object.class)));
-        method.visitLabel(end);
         method.visitInsn(Opcodes.ARETURN);
-        method.visitLabel(handler);
+        method.visitLabel(end);
         method.visitVarInsn(Opcodes.ASTORE, 2);
         method.visitTypeInsn(Opcodes.NEW, Type.getInternalName(RuntimeException.class));
         method.visitInsn(Opcodes.DUP);