Browse Source

fixed JASSIST-132

git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@572 30ef5769-5b8d-40dd-aea6-55b5d6557bb3
tags/rel_3_17_1_ga
chiba 13 years ago
parent
commit
e639e4cf38

+ 15
- 10
src/main/javassist/bytecode/stackmap/Tracer.java View File

@@ -88,17 +88,22 @@ public abstract class Tracer implements TypeTag {
* @return the size of the instruction at POS.
*/
protected int doOpcode(int pos, byte[] code) throws BadBytecode {
int op = code[pos] & 0xff;
if (op < 96)
if (op < 54)
return doOpcode0_53(pos, code, op);
else
return doOpcode54_95(pos, code, op);
else
if (op < 148)
return doOpcode96_147(pos, code, op);
try {
int op = code[pos] & 0xff;
if (op < 96)
if (op < 54)
return doOpcode0_53(pos, code, op);
else
return doOpcode54_95(pos, code, op);
else
return doOpcode148_201(pos, code, op);
if (op < 148)
return doOpcode96_147(pos, code, op);
else
return doOpcode148_201(pos, code, op);
}
catch (ArrayIndexOutOfBoundsException e) {
throw new BadBytecode("inconsistent stack height " + e.getMessage());
}
}

protected void visitBranch(int pos, byte[] code, int offset) throws BadBytecode {}

+ 1
- 1
src/main/javassist/expr/Cast.java View File

@@ -84,7 +84,7 @@ public class Cast extends Expr {
*
* <p>$0 is available but the value is <code>null</code>.
*
* @param statement a Java statement.
* @param statement a Java statement except try-catch.
*/
public void replace(String statement) throws CannotCompileException {
thisClass.getClassFile(); // to call checkModify().

+ 2
- 2
src/main/javassist/expr/Expr.java View File

@@ -264,7 +264,7 @@ public abstract class Expr implements Opcode {
* Replaces this expression with the bytecode derived from
* the given source text.
*
* @param statement a Java statement.
* @param statement a Java statement except try-catch.
*/
public abstract void replace(String statement) throws CannotCompileException;

@@ -272,7 +272,7 @@ public abstract class Expr implements Opcode {
* Replaces this expression with the bytecode derived from
* the given source text and <code>ExprEditor</code>.
*
* @param statement a Java statement.
* @param statement a Java statement except try-catch.
* @param recursive if not null, the substituted bytecode
* is recursively processed by the given
* <code>ExprEditor</code>.

+ 1
- 1
src/main/javassist/expr/FieldAccess.java View File

@@ -144,7 +144,7 @@ public class FieldAccess extends Expr {
* If the field access is writing, $_ is available but the value
* of $_ is ignored.
*
* @param statement a Java statement.
* @param statement a Java statement except try-catch.
*/
public void replace(String statement) throws CannotCompileException {
thisClass.getClassFile(); // to call checkModify().

+ 1
- 1
src/main/javassist/expr/Handler.java View File

@@ -92,7 +92,7 @@ public class Handler extends Expr {
/**
* This method has not been implemented yet.
*
* @param statement a Java statement.
* @param statement a Java statement except try-catch.
*/
public void replace(String statement) throws CannotCompileException {
throw new RuntimeException("not implemented yet");

+ 1
- 1
src/main/javassist/expr/Instanceof.java View File

@@ -87,7 +87,7 @@ public class Instanceof extends Expr {
*
* <p>$0 is available but the value is <code>null</code>.
*
* @param statement a Java statement.
* @param statement a Java statement except try-catch.
*/
public void replace(String statement) throws CannotCompileException {
thisClass.getClassFile(); // to call checkModify().

+ 1
- 1
src/main/javassist/expr/MethodCall.java View File

@@ -173,7 +173,7 @@ public class MethodCall extends Expr {
*
* <p>$0 is available even if the called method is static.
*
* @param statement a Java statement.
* @param statement a Java statement except try-catch.
*/
public void replace(String statement) throws CannotCompileException {
thisClass.getClassFile(); // to call checkModify().

+ 1
- 1
src/main/javassist/expr/NewArray.java View File

@@ -153,7 +153,7 @@ public class NewArray extends Expr {
* If the field access is writing, $_ is available but the value
* of $_ is ignored.
*
* @param statement a Java statement.
* @param statement a Java statement except try-catch.
*/
public void replace(String statement) throws CannotCompileException {
try {

+ 1
- 1
src/main/javassist/expr/NewExpr.java View File

@@ -156,7 +156,7 @@ public class NewExpr extends Expr {
*
* <p>$0 is available but the value is null.
*
* @param statement a Java statement.
* @param statement a Java statement except try-catch.
*/
public void replace(String statement) throws CannotCompileException {
thisClass.getClassFile(); // to call checkModify().

+ 1
- 1
tutorial/tutorial2.html View File

@@ -664,7 +664,7 @@ with a block:

<p>so that the first parameter to <code>move()</code> is always 0.
Note that the substituted code is not an expression but
a statement or a block.
a statement or a block. It cannot be or contain a try-catch statement.

<p>The method <code>instrument()</code> searches a method body.
If it finds an expression such as a method call, field access, and object

Loading…
Cancel
Save