From 3ab8b841312f792dc64016800193cb1b0368a9f9 Mon Sep 17 00:00:00 2001 From: chiba Date: Sat, 6 Oct 2012 14:47:31 +0000 Subject: [PATCH] fixed JASSIST-160 git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@672 30ef5769-5b8d-40dd-aea6-55b5d6557bb3 --- Readme.html | 2 +- javassist.jar | Bin 698321 -> 698340 bytes src/main/javassist/bytecode/CodeIterator.java | 6 +++- .../javassist/bytecode/stackmap/Tracer.java | 9 +++-- .../javassist/bytecode/stackmap/TypeData.java | 4 ++- src/test/javassist/bytecode/StackMapTest.java | 34 ++++++++++++++++++ src/test/test4/InvokeDyn.java | 14 +++++++- 7 files changed, 62 insertions(+), 7 deletions(-) diff --git a/Readme.html b/Readme.html index 353cb4b2..72933367 100644 --- a/Readme.html +++ b/Readme.html @@ -7,7 +7,7 @@

Javassist version 3

-

Copyright (C) 1999-2011 by Shigeru Chiba, All rights reserved.

+

Copyright (C) 1999-2012 by Shigeru Chiba, All rights reserved.


diff --git a/javassist.jar b/javassist.jar index 719a322ef0032c33bc8c07daa1532b5b428f17ce..ec0b29a995d18f1858976004761bd8396a0c80b8 100644 GIT binary patch delta 43422 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 instruction for the first * instruction of the method: * - *
CodeAttribute ca = method.getMethodInfo().getCodeAttribute();
+ * 
+ * CodeAttribute ca = method.getMethodInfo().getCodeAttribute();
  * CodeIterator ci = ca.iterator();
  * ci.writeByte(Opcode.NOP, 0);
* + *

To visit every instruction, call {@link #next()} on a CodeIterator. + * It returns the index of the first byte of the next instruction. + * *

If there are multiple CodeIterators referring to the * same Code_attribute, then inserting a gap by one * CodeIterator will break the other diff --git a/src/main/javassist/bytecode/stackmap/Tracer.java b/src/main/javassist/bytecode/stackmap/Tracer.java index 1bacd09c..e5216165 100644 --- a/src/main/javassist/bytecode/stackmap/Tracer.java +++ b/src/main/javassist/bytecode/stackmap/Tracer.java @@ -803,7 +803,9 @@ public abstract class Tracer implements TypeTag { String className = cpool.getMethodrefClassName(i); TypeData target = stackTypes[--stackTop]; if (target instanceof TypeData.UninitTypeVar && target.isUninit()) - constructorCalled((TypeData.UninitTypeVar)target); + constructorCalled(target, ((TypeData.UninitTypeVar)target).offset()); + else if (target instanceof TypeData.UninitData) + constructorCalled(target, ((TypeData.UninitData)target).offset()); target.setType(className, classPool); } @@ -814,9 +816,10 @@ public abstract class Tracer implements TypeTag { /* This is a constructor call on an uninitialized object. * Sets flags of other references to that object. + * + * @param offset the offset where the object has been created. */ - private void constructorCalled(TypeData.UninitTypeVar target) { - int offset = target.offset(); + private void constructorCalled(TypeData target, int offset) { target.constructorCalled(offset); for (int i = 0; i < stackTop; i++) stackTypes[i].constructorCalled(offset); diff --git a/src/main/javassist/bytecode/stackmap/TypeData.java b/src/main/javassist/bytecode/stackmap/TypeData.java index d77f6a55..6428335d 100644 --- a/src/main/javassist/bytecode/stackmap/TypeData.java +++ b/src/main/javassist/bytecode/stackmap/TypeData.java @@ -745,11 +745,13 @@ public abstract class TypeData { public void setType(String typeName, ClassPool cp) throws BadBytecode { super.setType(typeName, cp); - initialized = true; + // initialized = true; } public String toString() { return "uninit:" + getName() + "@" + offset; } + public int offset() { return offset; } + public void constructorCalled(int offset) { if (offset == this.offset) initialized = true; diff --git a/src/test/javassist/bytecode/StackMapTest.java b/src/test/javassist/bytecode/StackMapTest.java index 4b9339d7..4714f7aa 100644 --- a/src/test/javassist/bytecode/StackMapTest.java +++ b/src/test/javassist/bytecode/StackMapTest.java @@ -529,6 +529,7 @@ public class StackMapTest extends TestCase { public static class T8dd { java.util.List foo(String s) { return new java.util.ArrayList(); } } + public static class T8d { static T8dd helper() { return new T8dd(); } int integer() { return 9; } @@ -588,6 +589,39 @@ public class StackMapTest extends TestCase { } } + public void testInnerClass() throws Exception { + CtClass cc = loader.get("javassist.bytecode.StackMapTest$T9"); + CtClass par = loader.get("javassist.bytecode.StackMapTest$T9$Parent"); + CtClass in = loader.get("javassist.bytecode.StackMapTest$T9$In"); + rebuildStackMaps2(cc); + rebuildStackMaps2(par); + rebuildStackMaps2(in); + cc.writeFile(); + in.writeFile(); + par.writeFile(); + Object t1 = make(cc.getName()); + assertEquals(19, invoke(t1, "test")); + } + + public static class T9 { + class Parent { + int f; + Parent(int i) { f = i; } + } + class In extends Parent { + int value; + public In(int i) { + super(i > 0 ? 10 : 20); + value = i; + } + } + + public int test() { + In in = new In(9); + return in.value + in.f; + } + } + public void tstCtClassType() throws Exception { ClassPool cp = ClassPool.getDefault(); CtClass cc = cp.get("javassist.CtClassType"); diff --git a/src/test/test4/InvokeDyn.java b/src/test/test4/InvokeDyn.java index 5e5f0c01..fbcba64d 100644 --- a/src/test/test4/InvokeDyn.java +++ b/src/test/test4/InvokeDyn.java @@ -4,11 +4,23 @@ import java.lang.invoke.*; public class InvokeDyn { public static int test9(int i, String s) { return 9; } + public int test8(int i, String s) { return 8; } - public static CallSite boot(MethodHandles.Lookup caller, String name, MethodType type) throws NoSuchMethodException, IllegalAccessException { + public static CallSite boot(MethodHandles.Lookup caller, String name, MethodType type) + throws NoSuchMethodException, IllegalAccessException + { MethodHandles.Lookup lookup = MethodHandles.lookup(); Class thisClass = lookup.lookupClass(); MethodHandle method = lookup.findStatic(thisClass, "test9", MethodType.methodType(int.class, int.class, String.class)); return new ConstantCallSite(method); } + + public CallSite boot2(MethodHandles.Lookup caller, String name, MethodType type) + throws NoSuchMethodException, IllegalAccessException + { + MethodHandles.Lookup lookup = MethodHandles.lookup(); + Class thisClass = lookup.lookupClass(); + MethodHandle method = lookup.findVirtual(thisClass, "test8", MethodType.methodType(int.class, int.class, String.class)); + return new ConstantCallSite(method.asType(MethodType.methodType(int.class, Object.class, int.class, String.class))); + } } -- 2.39.5