Browse Source

fixed JASSIST-185

git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@704 30ef5769-5b8d-40dd-aea6-55b5d6557bb3
tags/log
chiba 11 years ago
parent
commit
81e75232f4

+ 2
- 2
Readme.html View File

@@ -7,7 +7,7 @@

<h1>Javassist version 3</h1>

<h3>Copyright (C) 1999-2012 by Shigeru Chiba, All rights reserved.</h3>
<h3>Copyright (C) 1999-2013 by Shigeru Chiba, All rights reserved.</h3>

<p><br></p>

@@ -283,7 +283,7 @@ see javassist.Dump.

<p>-version 3.18
<ul>
JIRA JASSIST-183, 184, 189, 162, 186, 190.
JIRA JASSIST-183, 184, 189, 162, 185, 186, 190.
</ul>

<p>-version 3.17.1 on December 3, 2012

BIN
javassist.jar View File


+ 6
- 2
src/main/javassist/CtBehavior.java View File

@@ -656,11 +656,15 @@ public abstract class CtBehavior extends CtMember {

ca.insertLocalVar(where, size);
LocalVariableAttribute va
= (LocalVariableAttribute)
ca.getAttribute(LocalVariableAttribute.tag);
= (LocalVariableAttribute)ca.getAttribute(LocalVariableAttribute.tag);
if (va != null)
va.shiftIndex(where, size);

LocalVariableTypeAttribute lvta
= (LocalVariableTypeAttribute)ca.getAttribute(LocalVariableTypeAttribute.tag);
if (lvta != null)
lvta.shiftIndex(where, size);

StackMapTable smt = (StackMapTable)ca.getAttribute(StackMapTable.tag);
if (smt != null)
smt.insertLocal(where, StackMapTable.typeTagOf(typeDesc), classInfo);

+ 2
- 0
src/main/javassist/bytecode/CodeAttribute.java View File

@@ -465,6 +465,7 @@ public class CodeAttribute extends AttributeInfo implements Opcode {
* Changes the index numbers of the local variables
* to append a new parameter.
* This method does not update <code>LocalVariableAttribute</code>,
* <code>LocalVariableTypeAttribute</code>,
* <code>StackMapTable</code>, or <code>StackMap</code>.
* These attributes must be explicitly updated.
*
@@ -472,6 +473,7 @@ public class CodeAttribute extends AttributeInfo implements Opcode {
* @param size the type size of the new parameter (1 or 2).
*
* @see LocalVariableAttribute#shiftIndex(int, int)
* @see LocalVariableTypeAttribute#shiftIndex(int, int)
* @see StackMapTable#insertLocal(int, int, int)
* @see StackMap#insertLocal(int, int, int)
*/

+ 8
- 0
src/test/javassist/JvstTest4.java View File

@@ -838,4 +838,12 @@ public class JvstTest4 extends JvstTestRoot {
Object obj = make(cc.getName());
assertEquals(12, invoke(obj, "test1"));
}

public void testLocalVariableTypeTable() throws Exception {
CtClass cc = sloader.get("test4.Lvtt");
CtMethod m = cc.getDeclaredMethod("run");
m.addParameter(CtClass.intType);
cc.writeFile();
Object obj = make(cc.getName());
}
}

+ 11
- 0
src/test/test4/Lvtt.java View File

@@ -0,0 +1,11 @@
package test4;

import java.util.ArrayList;
import java.util.List;

public class Lvtt {
public void run() {
List<String> s = new ArrayList<String>();
System.out.println(s);
}
}

Loading…
Cancel
Save