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



<h1>Javassist version 3</h1> <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> <p><br></p>




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


<p>-version 3.17.1 on December 3, 2012 <p>-version 3.17.1 on December 3, 2012

BIN
javassist.jar View File


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



ca.insertLocalVar(where, size); ca.insertLocalVar(where, size);
LocalVariableAttribute va LocalVariableAttribute va
= (LocalVariableAttribute)
ca.getAttribute(LocalVariableAttribute.tag);
= (LocalVariableAttribute)ca.getAttribute(LocalVariableAttribute.tag);
if (va != null) if (va != null)
va.shiftIndex(where, size); 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); StackMapTable smt = (StackMapTable)ca.getAttribute(StackMapTable.tag);
if (smt != null) if (smt != null)
smt.insertLocal(where, StackMapTable.typeTagOf(typeDesc), classInfo); smt.insertLocal(where, StackMapTable.typeTagOf(typeDesc), classInfo);

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

* Changes the index numbers of the local variables * Changes the index numbers of the local variables
* to append a new parameter. * to append a new parameter.
* This method does not update <code>LocalVariableAttribute</code>, * This method does not update <code>LocalVariableAttribute</code>,
* <code>LocalVariableTypeAttribute</code>,
* <code>StackMapTable</code>, or <code>StackMap</code>. * <code>StackMapTable</code>, or <code>StackMap</code>.
* These attributes must be explicitly updated. * These attributes must be explicitly updated.
* *
* @param size the type size of the new parameter (1 or 2). * @param size the type size of the new parameter (1 or 2).
* *
* @see LocalVariableAttribute#shiftIndex(int, int) * @see LocalVariableAttribute#shiftIndex(int, int)
* @see LocalVariableTypeAttribute#shiftIndex(int, int)
* @see StackMapTable#insertLocal(int, int, int) * @see StackMapTable#insertLocal(int, int, int)
* @see StackMap#insertLocal(int, int, int) * @see StackMap#insertLocal(int, int, int)
*/ */

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

Object obj = make(cc.getName()); Object obj = make(cc.getName());
assertEquals(12, invoke(obj, "test1")); 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

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